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

Я полагаю многие играя в компьютерные игры задумались что аптечка(к примеру) на самом деле не должна лечить мгновенно(ну или почти мгновенно, как это сделано в STALKER). Это то мы и исправим, ну и заодно рассмотрим полный список эффектов.

Итак поехали:

Возьмем кусок описания обычной аптечки:

[medkit]:booster
$spawn     = "food and drugs\medkit"
visual    = dynamics\devices\dev_aptechka\dev_aptechka_low.ogf
inv_name    = st_medkit
inv_name_short    = st_medkit
description    = st_medkit_descr
inv_weight    = 0.1

inv_grid_width    = 1
inv_grid_height = 1
inv_grid_x    = 6
inv_grid_y    = 14
cost    = 250

boost_time    = 10.0
boost_health_restore    = 0.01
boost_radiation_restore = 0.0
boost_bleeding_restore    = 0.005

use_sound    = interface\inv_medkit

В самом верху мы видим:

[medkit]:booster = системное имя:системное имя предмета из которого будут браться недостающие строки конфига

Рассмотрим секцию "booster" она по сути содержит пустые конфиги. Прокоментирую основное(параметры которые могут пригодиться).

[booster]:identity_immunities
GroupControlSection = spawn_group
discovery_dependency =
;$spawn         = "food and drugs\booster"
$prefetch     = 8
class        = S_FOOD
cform        = skeleton
visual        = dynamics\devices\dev_aptechka\dev_aptechka_low.ogf ; Ссылка на визуал в "stalker\gamedata\meshes"
description    = default ; Ссылка на описание предмета "gamedata\configs\text\rus"
inv_name    = default ; Ссылка на имя предмета(Аптечка автомобильная) "gamedata\configs\text\rus"
inv_name_short    = default ; Ссылка на короткое имя предмета(Апт.Авт.) "gamedata\configs\text\rus"
inv_weight    = 0.01 ; Вес предмета

inv_grid_width    = 1
inv_grid_height    = 1
inv_grid_x    = 3
inv_grid_y    = 18
cost        = 1 ; Стандартная стоимость(конечная зависит от отношения торговца)

; eatable item
eat_health    = 0 ; Мгновенно даёт определенное количествово здоровья 1 = 100%
eat_satiety    = 0 ; Мгновенное насыщение 1 = 100%
eat_power    = 0 ; Мгновенное восстановление силы 1 = 100%
eat_max_power    = 0 ; Мгновенное увеличение максимальной силы 1 = 100%(Вроде как...)
eat_radiation    = 0 ; Мгновенное увеличение или уменьшение облученности (1 увеличение)(-1 уменьшение)
eat_alcohol    = 0 ; Мгновенное увеличение или уменьшение уровня опьянения (1 увеличение)(-1 уменьшение)
wounds_heal_perc = 0 ; я так понял что это скорость затягивания ран, но не уверен...
eat_portions_num = 1 ; Интересный параметр... Количество порций в упаковке (проверена работоспособность от 1 до 99999)

boost_time    = 0.0 ; Время действия(распостраняется только на параметры boost_*
boost_max_weight    = 0.0 ; Увеличение переносимого веса. Уменьшение не работает, как видимо на всех boost_* =(
boost_health_restore    = 0.0 ; Увеличение скорости восстановления здаровья
boost_power_restore    = 0.0 ; Увеличение скорости восстановления силы
boost_radiation_restore = 0.0 ; Увеличение скорости вывода радиации
boost_bleeding_restore    = 0.0 ; Увеличение скорости заживления ран

;protection Снижают количество получаемого ХИТА
boost_radiation_protection = 0.0 ; Увеличение защиты от радиации
boost_telepat_protection = 0.0 ; Увеличение защиты от телепатического воздействия(от контролеров не спасает)
boost_chemburn_protection = 0.0 ; Увеличение защиты от химических повреждений

;immunity Увеличивают минимальный уровень воздействия для получения ХИТА
boost_burn_immunity    = 0.0 ; Увеличение имунитета к огню
boost_shock_immunity    = 0.0 ; Увеличение имунитета к электрическому току
boost_radiation_immunity = 0.0 ; Увеличение имунитета к радиации
boost_telepat_immunity    = 0.0 ; Увеличение имунитета к пси воздействию
boost_chemburn_immunity = 0.0 ; Увеличение имунитета к химическим воздействиям
boost_strike_immunity    = 0.0 ; Увеличение имунитета к выстрелам
boost_wound_immunity    = 0.0 ; Увеличение имунитета к ударам
boost_explosion_immunity = 0.0 ; Увеличение имунитета к взрывам
boost_fire_wound_immunity = 0.0 ; Увеличение имунитета к взрывной волне
;use_sound    = characters_voice\multiplayer\team_1\voice_roger_3 ; Звук "gamedata\sounds"

Теория пройдена!!!

Практика

[medkit]:booster ; НЕ ТРОГАЕМ!!!
$spawn     = "food and drugs\medkit" ; НЕ ТРОГАЕМ!!!
visual    = dynamics\devices\dev_aptechka\dev_aptechka_low.ogf ; НЕ ТРОГАЕМ!!!
inv_name    = st_medkit ; НЕ ТРОГАЕМ!!!
inv_name_short    = st_medkit ; НЕ ТРОГАЕМ!!!
description    = st_medkit_descr ; НЕ ТРОГАЕМ!!!
inv_weight    = 0.1 ; По желанию

inv_grid_width    = 1 ; НЕ ТРОГАЕМ!!!
inv_grid_height = 1 ; НЕ ТРОГАЕМ!!!
inv_grid_x    = 6 ; НЕ ТРОГАЕМ!!!
inv_grid_y    = 14 ; НЕ ТРОГАЕМ!!!
cost    = 250 ; По желанию

boost_time    = 60.0 ; Меняем с 10.0 на 60.0
boost_health_restore    = 0.002 ; Меняем с 0.01 на 0.002
boost_radiation_restore = 0.0 ; По желанию
boost_bleeding_restore    = 0.0 ; По желанию

use_sound    = interface\inv_medkit ; НЕ ТРОГАЕМ!!!

Итак, мы получили аптечку которая лечит медленно но на протяжение 60 секунд(По сравнению с оригиналом это хоть как то похоже на правду)

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

[antirad]:booster
$spawn         = "food and drugs\antirad"
visual        = dynamics\devices\dev_antirad\dev_antirad.ogf
inv_name    = st_antirad
inv_name_short    = st_antirad
description    = st_antirad_descr
inv_weight    = 0.01

inv_grid_width    = 1
inv_grid_height    = 1
inv_grid_x    = 18
inv_grid_y    = 12
cost        = 750

boost_time    = 60.0
boost_radiation_restore = 0.01
eat_alcohol    = 0.3

use_sound    = interface\inv_pills

Я полагаю что опьянение здесь в тему так как вещества такого типа считаются наркотическими.

А зная о ранее неиспользуемых эфектах можно создавать новые, тот же к примеру "Анти-похмелин". В пачке которого будет 10 таблеток:

[drug_analgin]:booster
$spawn         = "food and drugs\drug_analgin"
visual        = dynamics\equipments\medical\drug_coagulant.ogf
inv_name    = st_drug_analgin
inv_name_short    = st_drug_analgin
description    = st_drug_analgin_descr
inv_weight    = 0.01

inv_grid_width    = 1
inv_grid_height    = 1
inv_grid_x    = 19
inv_grid_y    = 4
cost        = 350

boost_time        = 5.0
eat_alcohol    = -0.1
eat_portions_num = 10

use_sound    = interface\inv_pills

Каждая таблетка при такой конфигурации будет снимать 10% опьянения.

Автор: WincentDark69