CoP: Делаем нормальные медикаменты. — S.T.A.L.K.E.R. Inside Wiki

CoP: Делаем нормальные медикаменты.

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

Перейти к: навигация, поиск

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

Я полагаю многие играя в компьютерные игры задумались что аптечка(к примеру) на самом деле не должна лечить мгновенно(ну или почти мгновенно, как это сделано в 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

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