Главная » Статьи » Уроки модинга

Уроки от Ximera1998
Активация артефактов
Распишу по пунктам как добавить например к "огненому шару" аномалию Жарка...
Открываете файл: gamedata/config/misc/artefacts.ltx
И там в самом начале файла такая секция:
;Артефакты, которые при активизации создают аномальные зоны
;формат: {секция_артефакта} = {секция_зоны},Radius,Power
[artefact_spawn_zones]
af_medusa = zone_mosquito_bald_weak, 2.0, 30.0

Обозначает что артефакт af_medusa при активации создаст аномальную зону zone_mosquito_bald_weak с радиусом 2 метра и мощностью 30 (возможно влияет и на время жизни аномалии)
Кончается этот список по идее строчкой: mp_af_electra_flash = zone_witches_galantine, 3, 50.0
и сразу после неё пишете: af_fireball = zone_zharka_static, 3, 30.0
В принципе можно прописать там не статик а zone_zharka_weak незнаю что из них правильнее использовать... статик работает тоже.В той-же папке есть файл zone_zharka, где описаны свойства зон _weak, _average, _strong( слабая, средняя, сильная), а также зона zone_zharka_static.
После этого у вас игра станет вылетать с ошибкой про невозможность обнаружить последовательность описывающую анимацию активации аномалии.
А это всё там же в начале файла чуть ниже того где вы добавили новый артефакт в список есть такие строчки:
[af_activation_gravi]
;------------------------------------------------------------------------------------------------------------------
;format: time(sec), sound_name, light_R,G,B, light_range, particle_name, af_animation_name
;------------------------------------------------------------------------------------------------------------------
starting = 5.0, anomalygravi_idle00, 0.5, 1.0, 1.5, 5.0, "anomaly2artefact_gravi_blast_start", "idle"
flying = 2.0, anomalygravi_idle01, 0.8, 1.0, 1.2, 3.0, "anomaly2artefactartefact_gravi", "idle"
idle_before_spawning = 5.0, anomalygravi_blowout5, 1.0, 1.0, 1, 0.0, "anomaly2artefact_gravi_blast_finished", "idle"
spawning = 1, anomalygravity_entrance, 0.9, 1.1, 1.01, 0.0, "", "idle"

Что как раз и описывает анимацию..
По-хорошему надо написать свою анимацию к жарке но это честно говоря не обязательно... потому что нам сейчас важна не красота а работоспособность.... Так вот... из заголовка "[af_activation_gravi]" берем название последовательности af_activation_gravi и ищем сам артефакт af_fireball (кто уже забыл зачем, мы на него собирались вешать новую активацию)
Найдете что-то вроде:
[af_fireball]:af_base
GroupControlSection = spawn_group
$spawn = "artifactszharka fireball"
$npc = on ; option for Level Editor
;$prefetch = 3
cform = skeleton
class = ARTEFACT

visual = physicsanomalyartefact_fire.ogf
description = enc_zone_artifact_af-fireball
inv_name = af-fireball
И где-нибудь тут добавляете строчку: artefact_activation_seq = af_activation_gravi
И на этом всё. Прописываем в artefacts.ltx в блоке [af_base]:identity_immunities вместо ;slot=10 вот это: slot=1. Насколько я знаю, знак ; зоначает, что строка закомментирована(неактивна) У себя я прописывал slot=1 между строчками inv_name = af-electra-moonlight inv_name_short = inv_weight = 0.05 slot = 1 inv_grid_x = 10 inv_grid_y = 10 для того артефакта, который хочу активировать.
В игре берем артефакт в первый слот и активируем.

Добавление статей в PDA
Добавление статьи
На примере статьи из Artefact Activation Mod разберем их добавление в PDA:
• Добавим в файл config\gameplay\encyclopedia_zone.xml новую статью:
<!-------------------------------- Activation - Basic ----------------------------->

<article id="zone_anomalies_activation_basic" name="zone_anomalies_activation-basic" group="Anomalies">
<texture x="500" y="150" width="100" height="100">ui_icon_photo</texture>
<text>enc_zone_anomalies_activation_basic</text>
</article>
Здесь:

o article id - внутреннее имя статьи, именно на него ссылаются в файлах игры
o name - имя статьи, отображаемое в игре, подгружается из строкового массива
o texture - картинка и её позиция в статье, в данном случае мы использовали обычный белый шум
o text - текст статьи, отображаемый в игре, подгружается из строкового массива
• Добавим в, например, config\gameplay\info_l01escape.xml (инфопорции уровня "Кордон") ссылку на получение статьи - скажем, к трупу у туннеля, при обыске которого выдается информация о аномалиях в туннеле (вы его обнаруживаете, проходя второе спецзадание от Сидоровича). Найдем эти строки и дополним их:
<!-- труп у аномалии -->
<info_portion id="esc_tutorial_dead_novice">
<article>tutorial_moving_anomaly</article>
'''<article>zone_anomalies_activation_basic</article>'''
</info_portion>
Главное - никогда не путайте article id, name и text статьи. Я в данном примере это сделать легко. Лучше называйте их непохожими друг на друга названиями.
• Так как в статье у нас есть такое поле:
<text>enc_zone_anomalies_activation_basic</text>
Да и название тоже не написано прямо, а ссылается на определенную строку, то добавим этот самый text в config\text\rus\string_table_enc_zone.xml, в нашем случае:
<string id="enc_zone_anomalies_activation-basic">
<text>Активация - базис</text>
</string>
<string id="enc_zone_anomalies_activation_basic">
<text>С артефактами связана, помимо всего прочего, ''(ну, и так далее, там большой текст)''...</text>
</string>
Дополнительно
Чтобы статья добавлялась при получении определенного задания, в ..._task.xml (вместо ... стоит название уровня) нужно прописать конструкцию вида:
<article>название_задания_descr</article>

Новые монстры
Введение
Многие часто сталкиваются с тем, что при попытке добавления монстров не попавшими в финальную версию игра может вылетать. Попробую рассказать, как это дело можно исправить.
Для примера возьму кошек (уж очень они мне нравятся)
Добавить их можно отредактировать файл all.spawn, либо динамически создать в игре через функцию alife:create().
Вылет при появлении
Обычно сопровождается сообщением в логе:
Arguments : Can't open section 'cat_weak'
Это значит, что монстр у нас не до конца описан. В файле конфигурации идет секция
[m_cat_e]:monster_base
Но для создания разных по силе конфигураций монстров обычно используется такая штука. Создается секция вида
[cat_weak]:m_cat_e
то есть ссылка на основную конфигурацию, а потом указываются параметры, которые отличаются от нее. Например сила, здоровье, угол обзора и тд. Мы пока ограничимся просто добавлением этой секции. В файле config\creatures\m_cat.ltx в конце допишем [cat_weak]:m_cat_e. Запускаем, добавляем кошку, вылетаем с ошибкой:
Arguments : Can't find variable smart_terrain_choose_interval in [cat_weak]
Что ж, добавим и этот параметр. Посмотрим, какой он у собак, и сделаем также:
smart_terrain_choose_interval = 00:15:00
Запускаем, вылетаем с ошибкой:
Arguments : Can't find variable satiety_threshold in [cat_weak]
Вобщем, добавляем параметры, по кошка не станет нормально появлятся. Такие ошибки легко локализуются и исправляются.
Ну, на всякий случай, нужно добавить еще две строчки:
critical_wound_threshold = 0.4
critical_wound_decrease_quant = 0.
После этого кошка появляется, бегает, с 30 метров бежит нас кушать. Мы этого не хотим, стреляем в нее, и у нас происходит
Вылет при убийстве
Это знаменитая ошибка:
Arguments : LUA error: e:\stalker\gamedata\scripts\_g.script:20 ........
Самое просто и неправильное решение - закоментировать 20-ю строку скрипта _g.script, вылет исчезнет, но ошибка никуда не денется. Я не могу сказать с уверенностью, к чему игнорирование этого факта может привести, так как исправлял причину, а не следствие.
Путем нехитрых логических размышлений решение было найдено. Вернее тупым перебором всего, что относилось к делу, криками на форумах, битьем головой о стенку... Потом пришло озарение, вместе с сакраментальным вопросом "что происходит после смерти?" А происходит добавление в статистику убитого объекта (монстра, нпс-а). Поэтому лезем в скрипт xr_statistic.script. В самом начале видим объявление переменной
local killCountProps = {...}
в которой кошек нет. Поэтому добавляем их туда (например, в конец), для начисления очков опыта:
cat_weak = 1, cat_normal = 2, cat_strong = 3,
Хотя мы сделали только cat_weak, но на будущее добавим и остальных. Затем идет перечисление используемых классов монстров:
monster_classes = {
кошек нет и здесь, добавляем:
[clsid.cat_s] = "cat",
Смотрим дальше, видим функцию addKillCount(npc), которая определяет сообщество (community) убитого. Функция вызывает getNpcType(npc), которая находится в этом же скрипте. А там идет обращение к функции IsStalker(npc), и возвращает сообщество и ранг убиенного.
Но тут про мостров ни слова, а значит идем дальше. Функция IsStalker(npc) обнаруживается в скрипте _g.script. Просматривая его обнаруживаем следующие интересующие нас функции:
• is_object_monster(obj)
кошек нет, добавляем рядом с собаками:
otype == clsid.cat or
• IsMonster (object, class_id)
кошки есть, ничего не трогаем.
Для страховки проверим еще одни файл, class_registrator.script. Находим в нем строку
cs_register (object_factory, "CCat", "se_monster.se_monster", "SM_CAT_S", "cat_s")
и успокаиваемся на этом. Запускаем, убиваем, подходим, пытаемся обыскать - вылетаем. Потому что случился
Вылет при обыске
Ну тут уже проще. Вспоминаем, что у нас показывается в инвентаре убитого? Иконка растерзанного трупа. Проверяем m_cat.ltx - действительно, параметр icon отсутствует. Тут появляется два пути.
Первый - нарисовать новую иконку, вставить ее в файл ui_npc_monster.dds, определить координаты и добавить их в xml-описатель ui_npc_monster.xml. И так для каждого нового монстра.
Второй - использовать общую иконку для всех монстров, у которых отсутствует этот параметр. Мы им и воспользуемся, так как для тестовых целей сойдет, а для серьезного применения все равно необходимо иметь хоть какие-то художественные навыки (если кто видел мой тестовый мод "15 кошек", то помнят тот ужас вместо иконки кошки :) )
Для этого отредактируем файл defines.ltx , так как именно в нём содержится секция monster_base, общая для всех монстров. Открываем, ищем секцию, и вставляем
icon = ui_frame_error_sign_red
Это будет такой красный крест в круге. Запускаем, убиваем, обыскиваем и не вылетаем.
Итак, свежедобавленный монстр бегает, живет, нападает. Однако та же кошка по умолчанию невероятно сильна, убивает с одного удара, поэтому для нормальной жизни необходимо подредактировать секцию атаки.
Внимание!!!
Огромный минус в том, что убитое животное не попадает в статистику, хотя мы вроде все для этого сделали. С этим предлагаю разобраться самим. Подсказка: в энциклопедии кошек тоже нет.

Однотипные квесты
Описание
Как известно, при разговоре с некоторыми NPC (Сахаров, Бармен, Сидорович, Лукаш, Волк, Шустрый Долговец, Лысый, Охотник и Осведомитель) появляется ветка «есть ли для меня работа?». В целях упрощения создания однотипных квестов, выдаваемых через эту ветку, разработчики создали следующую схему...
Структура однотипных квестов
Сами задания находятся в конфиге:
gamedata\config\misc\task_manager.ltx
Цели квестов и условия их выполнения фиксируются в скрипте:
gamedata\scripts\task_manager.script
Ветки диалогов, отвечающие за эти задания (например, у Сидоровича) выглядит так:
<actor_dialog>tm_trader_dialog</actor_dialog>
<actor_dialog>tm_trader_reward</actor_dialog>
Где первый actor_dialog – диалог с выдачей задания, а второй - диалог по заданию и получению награды, либо отказа от выполнения оного. Никто нас насильно его выполнять не заставляет.
При получении задания информация об этом прописывается и в PDA, не забываем об этом. Информация добавляется с помощью файла:
gamedata\config\gameplay\storyline_info_taskmanager.xml
Описание задания хранится в файле:
gamedata\config\text\rus\stable_task_manager.xml
Всего существует шесть видов подобных заданий:
• eliminate_lager = уничтожить лагерь
• defend_lager = защитить лагерь
• kill_stalker = убить сталкер
• artefact = найти артефакт
• monster_part = найти часть монстра
• find_item = найти предмет
Создаем квест
Для создания дополнительного квеста у Сидоровича нам понадобятся всего три файла:
gamedata\config\gameplay\storyline_info_taskmanager.xml
gamedata\config\misc\task_manager.ltx
gamedata\config\text\rus\stable_task_manager.xml
Открываем task_manager.ltx, в начале видим длинный список заданий, а уж потом сами задания и условия выполнения к ним. Т.е. cначала идет:
[...]
tm_kill_stalker_5
tm_kill_stalker_6
tm_kill_stalker_7
[...]
А затем то, что нам нужно:
[...]
[tm_kill_stalker_6]
type = kill_stalker
community = actor
text = tm_kill_stalker_6_text
description = tm_kill_stalker_6_descr
parent = trader
target = sim_stalker_novice
;reward_money = 1000
reward_reputation = +3
reward_rank = 2
reward_item = af_vyvert, conserva
time = 86400
prior = 1

[tm_kill_stalker_7]
type = kill_stalker
community = actor
text = tm_kill_stalker_7_text
description = tm_kill_stalker_7_descr
parent = trader
target = esc_wolf
reward_money = 10000
reward_reputation = +3
reward_rank = 2
reward_item = vodka, conserva
time = 86400
prior = 1
[...]
Рассмотрим структуру этих записей, заодно создав новую:
• [tm_kill_stalker_7] – наше задание
• type = kill_stalker – тип задания, в данном случае – убийство сталкера
• community = actor – комьюнити, к которому принадлежит выполняющий задание (странный параметр, в игре используется - везде выставлен равным actor'у)
• text = tm_kill_stalker_7_text – описание нашего задания в диалоге
• description = tm_kill_stalker_7_descr – описание нашего задания в PDA
• parent = trader - заказчик
• target = esc_wolf – цель, в данном случае мы собираемся грохнуть Волка
• reward_money = 10000 – сколько денег нам дадут за выполнение
• reward_reputation = +3 – повышение/понижение репутации после выполнения задания
• reward_rank = 2 – кличество очков ранга, выдаваемых за выполнение
• reward_item = vodka, conserva – предметы, выдаваемые в награду за квест
• time = 86400 – время выполнения квеста
• prior = 1 – приоритет задания
Не забываем про PDA. В файл:
gamedata\config\gameplay\storyline_info_taskmanager.xml
Добавляем следующие строки:
<article id="tm_kill_stalker_7_descr" name="kill_stalker" article_type="task">
<text>tm_kill_stalker_7_descr</text>
</article>
Текст на русском для задания нужен? Тогда открываем
gamedata\config\text\rus\stable_task_manager.xml
И туда вгоняем следующие строки:
<string id="tm_kill_stalker_7">
<text>Убить Волка</text>
</string>
<string id="tm_kill_stalker_7_text">
<text>Достал меня Волк! Понимаешь, достал! Ворует у меня водку, понимаешь, потом идет и клянчит деньги на
тушенку, потому что новички его не слушают и есть ничего не дают, а вот сойти со своего места и пойти охотится на кабанов, он,
видите ли, не хочет, ибо ЛЕНЬ! Грохни его, Меченый, я в долгу не останусь.</text>
</string>
<string id="tm_kill_stalker_7_descr">
<text>Сидрыч заказал убийство Волка</text>
</string>
Важно! Эти строки не должны выходить за пределы тегов <string_table> и </string_table>.
Вот и все, теперь у Сидоровича появился новый квест - "Убить Волка".

Редактирование костюмов
Разбор параметров
В этой статье мы рассмотрим значения параметров костюмов.
Все параметры, не упомянутые ниже, изменять строго не рекомендуется!
Итак, секции с параметрами находятся в файле:
config\misc\outfit.ltx
Разберем, например, параметры классического костюма сталкера.
[stalker_outfit]:outfit_base

; название секции костюма. именно к нему игра будет обращаться. outfit_base -
базовая (наследуемая) секция (изменять строго не рекомендуется).

visual = equipments\stalker_suit ; модель, используемая для сложенного костюма,
лежащего на земле.

actor_visual = actors\hero\stalker_hood.ogf ; модель, используемая для игрока, когда
на нем надет костюм.

inv_name = stalker_outfit_name ; название в инвентаре.

inv_name_short = stalker_outfit_name ; название в инвентаре (в принципе, можно
здесь продублировать значение предыдущего параметра - так чаще всего и делают).

description = stalker_outfit_description ; ссылка на текстовую строку
с описанием.

inv_weight = 5.0 ; вес.

; далее идут параметры иконки в инвентаре (см. примечание 1).

inv_grid_width = 2
inv_grid_height = 3
inv_grid_x = 6
inv_grid_y = 15

full_icon_name = npc_icon_stalker_outfit ; название иконки.

cost = 15000 ; базовая цена (см. примечание 2).

full_scale_icon = 14,11 ; иконка сталкера в костюме в полный
рост (отображается в инвентаре справа).

nightvision_sect = effector_nightvision_bad ; тип ПНВ
("плохой" - зеленый, "хороший" - синий).

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

burn_protection = 0.5 ; защита от воздействия
огня (костры, аномалия "Жарка" и т.д.).

strike_protection = 0.5 ; защита от ударов
(наносятся мутантами, например, псевдогигантом).

shock_protection = 0.5 ; защита от поражения
электричеством.

wound_protection = 0.4 ; защита от ранений
(наносятся мутантами, например, собаками, кровососами и т.д.).

radiation_protection = 0.5 ; защита от радиации.

telepatic_protection = 0.0 ; защита от пси-воздействия
(например, присутствие контроллера серьезно влияет на psy_health).

chemical_burn_protection = 0.5 ; защита от химического воздействия.

explosion_protection = 0.3 ; защита от взрывов/осколков.

fire_wound_protection = 0.3 ; защита от огнестрельного
оружия (наиболее важный параметр для большинства костюмов).

power_loss = 0.87
bones_koeff_protection = gilet_antigas_damage

[sect_stalker_outfit_immunities] ; коэффициенты иммунитета самого костюма, то
есть - то, насколько сильно он сам подвержен повреждениям от различных типов
воздействий. по значениям каждого типа - см. выше.

burn_immunity = 0.03
strike_immunity = 0.01
shock_immunity = 0.03
wound_immunity = 0.015
radiation_immunity = 0.00
telepatic_immunity = 0.00
chemical_burn_immunity = 0.03
explosion_immunity = 0.03
fire_wound_immunity = 0.01

Редактирование оружия
Общие положения
Сегодня мы разберем то, каким образом можно редактировать оружие в игре - от характеристик до описания. Характеристики оружия хранятся здесь:
...\S.T.A.L.K.E.R\gamedata\config\weapons\w_[...].ltx
Разбор структуры конфига
Возьмем, для примера, конфиг w_g36.ltx. Он делится на разделы:
Первый раздел
Здесь хранится общая информация о оружии - его класс, тип, ссылки на спавн и т.д. Нас интересуют следующие строки:
• description = enc_weapons1_wpn-g36 - ссылка на string_id, из которого игра подгружает описание этого оружия.
• ef_main_weapon_type = 2 - основной тип, к которому принадлежит оружие
• ef_weapon_type = 6 - подтип, к которому принадлежит оружие
Второй раздел
Содержит модификаторы, которые даются к углу зрения/дальности обзора NPC, держащего это оружие в руках:
• holder_range_modifier = 1.85 - во сколько раз увеличивается eye_range
• holder_fov_modifier = 0.3 - во сколько раз увеличивается eye_fov
Третий раздел
Содержит данные о самом оружии, его некоторых характеристиках:
• cost = 18000 - базовая цена (торговцы умножают её на некоторый коэффициент)
• weapon_class = assault_rifle - класс оружия (здесь - штурмовая винтовка)
• ammo_mag_size = 30 - размер магазина
• ammo_class = ammo_5.56x45_ss190, ammo_5.56x45_ap - типы используемых патронов
• grenade_class = ammo_m209 - тип используемых гранат
• fire_modes = 1, -1 - режимы ведения огня
• hand_dependence = 1 - засивимость о рук (?) - возможно, речь идет о качании ствола
• single_handed = 0 - держится ли только в одной руке
• slot = 2 - слот в инвентаре
• animation_slot = 2 - вид анимации (для пистолета/для винтовки)
• inv_name = wpn-g36 - ссылка на имя, отображаемое в инвентаре, тоже берется из string table, как и описание
• inv_name_short = wpn-g36 - короткое имя; в данном случае используется то же самое
• inv_weight = 3.6 - вес
• inv_grid_width = 5 - координаты первого угла иконки по x
• inv_grid_height = 2 - координаты первого угла иконки по y
• inv_grid_x = 0 - координаты второго угла иконки по x
• inv_grid_y = 10 - координаты второго угла иконки по y
Четвертый раздел
В четвертом разделе хранится информация о износе/отдаче оружия. Практически все параметры там снабжены комментариями, поэтому приведу лишь самые интересные:
• cam_relax_speed = 5.7 - скорость возврата в исходное положение
• cam_dispersion = 0.2 - увеличения угла (в градусах) с каждым выстрелом
• fire_dispersion_condition_factor = 5 - увеличение дисперсии в процентах при максимальном износе
• misfire_probability = 0.003 - вероятность осечки при максимальном износе
• misfire_condition_k = 0.05 - порог (в данном случае - 5%), после которого оружие может заклинивать
• condition_shot_dec = 0.0002 - увеличение износа при каждом выстреле
Пятый раздел
Здесь хранится множество параметров, из которых наиболее интересны эти:
• hit_power = 0.50, 0.54, 0.57, 0.60 - сила выстрела
• hit_impulse = 105 - импульс пули (сила, которую летящая пуля передает жертве, влияет на поведение ragdoll-тела)
• hit_type = fire_wound - тип причиняемых повреждений, в данном случае - пулевые ранения (параметр в синглплеере ни на что не влияет)
• fire_distance = 600 - максимальная дистанция для выстрела
• bullet_speed = 925 - начальная скорость пули
• hud = wpn_g36_hud - внешний вид оружия
Шестой раздел
• position = -0.026, -0.132, 0.0 - позиция по отношению к игроку (?)
• orientation = 0, 0, 0 - направление, в которое смотрит ствол (?)
Седьмой раздел
Содержит описания визуальной стороны оружия и некоторые другие параметры:
• startup_ammo = 90 - как нетрудно догадаться, стартовое количество патронов (в синглплеере ни на что не влияет)
• visual = weapons\g36\wpn_g36.ogf - модель оружия, используемая NPC, а также игроком при виде от третьего лица
• ph_mass = 4 - физическая масса, используемая при расчетах
• scope_status = 1 - ситуация со съемным прицелом
• silencer_status = 0 - ситуация со съемным глушителем
• grenade_launcher_status = 0 - ситуация с подствольным гранатометом
• Параметры:
o 0 - нет, новый прикрепить нельзя
o 1 - уже есть, несъемный
o 2 - нет, но можно установить новый
• zoom_enabled = true - есть ли зум (прицеливание)
• scope_zoom_factor = 33.3 - какой зум дает прицеливание (здесь - 1.8х)
• scope_texture = wpn\wpn_crosshair_g36 - текстура прицельной сетки
• shell_point = 0.15, 0.0, -0.05 - точка вылета гильз
• shell_dir = 0.0, 1.0, 0.0
• fire_point = -0.000000,0.062000,0.134000 - точка выстрела
• fire_point2 = 0.30, 0.00, 0.05 - точка выстрела (2)
• fire_bone = wpn_body
• orientation = 0, 0, 0 - направление
• position = 0, 0, 0 - позиция
• visual = weapons\g36\wpn_g36_hud.ogf - модель, отображаемая у нас в руках
Изменение описаний
Описания оружия хранятся в файле: ...\S.T.A.L.K.E.R\gamedata\config\text\rus\string_table_enc_weapons.xml
В нем хранятся строки с названиями и описаниями, на которые ссылаются конфиги оружия. Например, тот же G36 ссылается сюда:
[...]
<string id="enc_weapons1_wpn-g36">
<text>Штурмовая винтовка немецкого производства, представляющая собой первоклассный образец
современного оружия - лёгкого, надёжного и эргономичного.\n Боеприпасы:\n обычный 5,56x45 мм
SS109,\n бронебойный 5,56x45 мм АР.</text>
[...]
<string id="wpn-g36">
<text>ГП37</text>
[...]
Меняя их содержимое, мы меняем описания/названия данного оружия.
Изменение патронов
Параметры патронов хранятся в файле:
...\S.T.A.L.K.E.R\gamedata\config\weapons\weapons.ltx
Найдем, например, раздел, отвечающий за патроны к тому же G36 (о них мы узнали из параметра ammo_class), и разберем, что означает каждый параметр:

• visual = weapons\ammo\ammo_556x45_ss190.ogf - модель коробки с патронами
• description = enc_weapons1_ammo_ammo-5.56x45-ss190 - ссылка на string_id, из которого игра подгружает описание этого типа патронов
• cost = 320 - стоимость одной коробки
• box_size = 30 - количество патронов в одной коробке
• inv_name = ammo-5.56x45-ss190 - ссылка на string_id, содержащий имя для инвентаря
• inv_name_short = ammo-5.56x45-ss190_s - ссылка на string_id, содержащий краткое имя для инвентаря
• inv_weight = 0.33 - вес
• inv_grid_width = 2 - координаты первого угла иконки по x
• inv_grid_height = 1 - координаты первого угла иконки по y
• inv_grid_x = 14 - координаты второго угла иконки по x
• inv_grid_y = 11 - координаты второго угла иконки по y

• k_dist = 1 - коэффициент дальности, сама дальность - в стволе, тупо расстояние.
• k_disp = 2.5 - кучность, завязана с кучностью в стволе
• k_hit = 1 - убойность, завязана с убойностью в стволе
• k_impulse = 1 - чисто наскока эффектно ногами непись дрыгнет во время кердыка
• k_pierce = 1 - коэффициент наскока испорится броня при попадании

• impair = 1 - коэффициент износа ствола от пули
• buck_shot = 1 - кол-во составляющих в пуле (напр картечь - 4, пуля - 1)
• tracer = on - является ли патрон трассирующим (on/off)
• wm_size = 0.05 - визуальный размер дырки на стене от пули
Категория: Уроки модинга | Добавил: Ximera1998 (22.01.2014)
Просмотров: 4306 | Комментарии: 4 | Рейтинг: 0.0/0
Всего комментариев: 4
Добавлен: 28.01.2014
pioneer
Ответ Цитата

Добавлен: 28.01.2014
Спрашивайте, не стесняйтесь, конечно не гарантирую что отвечу на все ваши вопросы, но как говорится попытка не пытка, так что дерзайте.
Ответ Цитата

Добавлен: 31.01.2014
Считаю вопросы задавать проще будет на форуме Справочный раздел модинга.
Ответ Цитата

Добавлен: 31.01.2014
Я имею ввиду задавать вопросы именно по этим урокам, может кому что не понятно будет.
Ответ Цитата

Имя / Логин
Email
 

Аккаунт

Здравствуйте: Гость

Категории раздела

Оптимизация системы [2]
Ваши персональные игровые настройки
Не много юмора [5]
Анекдоты
Уроки модинга [5]
Кратко о модинге
История Зоны [1]

Наш опрос

Что вам больше нравится?
1. Сюжет
2. Перестрелки
3. Сложность прохождения
4. Поиск чего - либо

Популярные статьи

Последние файлы

1 S.T.A.L.K.E.R. - Call ...
31.10.2018
Скачан: 8
Просмотров: 1901
2 Адаптация КЭ и ОС для ...
14.04.2017
Скачан: 93
Просмотров: 3328
3 Кровавый эндшпиль для ...
09.08.2016
Скачан: 56
Просмотров: 3705
4 S.T.A.L.K.E.R. - Тень ...
24.04.2016
Скачан: 85
Просмотров: 3598
5 Камера-телепорт
16.04.2016
Скачан: 197
Просмотров: 6066

Популярные файлы

Мини-чат

Статистика

Пришедшие в Зону
Всего:
9091
Новичков за месяц: 17
Новичков за неделю: 3
Новичков вчера: 1
Новичков сегодня: 1
Из них
Администраторов: 1
Тех.админов:
1
Одиночек: 9031
Бандитов: 13
Медиков: 0
Долг: 8
Свобода: 7
Наёмников: 9
Чистое Небо: 2
Монолит: 11
Учёные: 1
Военных: 7
Техники: 0
Пропавших в Зоне: 027
Парней: 7334
Девушек: 1757

Последний зарегистрированный новичок

Вторник 16.04.2024

Полное имя:
Николай Бородин
НИК: Mikael178
Группа: Одиночки


Онлайн всего: 1
Гостей: 1
Пользователей: 0

Нас посетили

ТОП пользователей

1
KADAR
Файлов: 2
Репутация: 173
Постов: 468
2
alen-fantom
Файлов: 2
Репутация: 85
Постов: 159
3 Rinat
Файлов: 0
Репутация: 21
Постов: 152
4
Пантера_del
Файлов: 2
Репутация: 54
Постов: 109
5
Эсминец
Файлов: 87
Репутация: 150
Постов: 100
6
ЧёрныйСталкер
Файлов: 2
Репутация: 28
Постов: 77
7 Stalker
Файлов: 0
Репутация: 10
Постов: 47
8
Dr_Feelgood
Файлов: 0
Репутация: 2
Постов: 47
9
magamed
Файлов: 0
Репутация: 25
Постов: 44
10
sliplel
Файлов: 0
Репутация: 12
Постов: 39

Последнее форума

1 farxadmamedov38
2 horosho-igra
3 magamed6632
4 greendayone82
5 timosha0829

Это интересно

Рейтинг обменников. Самые выгодные обменники электронной валюты.