<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://stalkerin.gameru.net/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://stalkerin.gameru.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Adarkman</id>
		<title>S.T.A.L.K.E.R. Inside Wiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://stalkerin.gameru.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Adarkman"/>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Adarkman"/>
		<updated>2026-06-09T15:46:25Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=CoP:_%D0%95%D1%89%D1%91_%D0%BE%D0%B4%D0%B8%D0%BD_%D1%81%D0%BF%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%88%D0%BE%D0%BA</id>
		<title>CoP: Ещё один спальный мешок</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=CoP:_%D0%95%D1%89%D1%91_%D0%BE%D0%B4%D0%B8%D0%BD_%D1%81%D0%BF%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%88%D0%BE%D0%BA"/>
				<updated>2012-12-27T15:35:10Z</updated>
		
		<summary type="html">&lt;p&gt;Adarkman: Новая страница: «Всем привет. В статье CoP. Создание спального мешка описан хороший метод создания спальни...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Всем привет. В статье [[CoP. Создание спального мешка]] описан хороший метод создания спальника.&lt;br /&gt;
К сожалению полученный спальник имеет существенный недостаток - если перетащить его в слот &lt;br /&gt;
быстрого доступа (который F1-F4), то игра вылетает (проверялось на версии 1.6.02).&lt;br /&gt;
Есть два метода борьбы с этим:&lt;br /&gt;
&lt;br /&gt;
'''1. В описании спальника поменять'''&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
inv_grid_width = 2 &lt;br /&gt;
inv_grid_height = 2 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
на &lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
inv_grid_width = 1&lt;br /&gt;
inv_grid_height = 1 &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
и соответственно перерисовать его иконку, но иконка 1х1 для спальника в инвентаре будет выглядеть неприглядно&lt;br /&gt;
&lt;br /&gt;
'''2. Создать спальник работающий на другом принципе'''&lt;br /&gt;
&lt;br /&gt;
О втором методе и пойдйт речь.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Общий принцип ==&lt;br /&gt;
&lt;br /&gt;
Мы унаследуем спальник не от identity_immunities, а от бинокля. Что получится: &lt;br /&gt;
#спальник нельзя будет перетащить в слот быстрого доступа - нет краша&lt;br /&gt;
#спальник будет срабатывать не при «использовании» (не будет такого пункта в меню), а при выбрасывании его из инвентаря и после сна его нужно будет подобрать обратно, что IMHO реалистичнее&lt;br /&gt;
&lt;br /&gt;
== Конфиги ==&lt;br /&gt;
В configs\misc\items.ltx дописываем:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Спальный мешок&lt;br /&gt;
------------------------------------------------------------------------------------------------&lt;br /&gt;
[sleeping_bag]:wpn_binoc&lt;br /&gt;
;identity_immunities&lt;br /&gt;
GroupControlSection	      = spawn_group&lt;br /&gt;
discovery_dependency           = &lt;br /&gt;
$spawn 			        = &amp;quot;devices\sleeping_bag&amp;quot;&lt;br /&gt;
$prefetch 		        = 32&lt;br /&gt;
class				= WP_BINOC&lt;br /&gt;
cform                           = skeleton&lt;br /&gt;
visual			        = dynamics\equipments\item_spalnik&lt;br /&gt;
inv_name		        = st_sleeping_bag_title&lt;br /&gt;
inv_name_short		        = st_sleeping_bag_title&lt;br /&gt;
description		        = st_sleeping_bag_descr&lt;br /&gt;
use_sound			= interface\bag_open&lt;br /&gt;
inv_weight			= 0.5&lt;br /&gt;
inv_grid_width		        = 2&lt;br /&gt;
inv_grid_height		        = 2&lt;br /&gt;
inv_grid_x			= 25&lt;br /&gt;
inv_grid_y			= 0&lt;br /&gt;
cost				= 0&lt;br /&gt;
eat_health                      = 0&lt;br /&gt;
eat_satiety                     = 0&lt;br /&gt;
eat_power                       = 0&lt;br /&gt;
eat_radiation                   = 0&lt;br /&gt;
wounds_heal_perc                = 0&lt;br /&gt;
eat_portions_num                = 1&lt;br /&gt;
slot 					  = -1&lt;br /&gt;
hit_power				= 0&lt;br /&gt;
hit_type				= fire_wound&lt;br /&gt;
ammo_class			= ammo_9x19_fmj&lt;br /&gt;
scope_status			= 0&lt;br /&gt;
silencer_status			= 0&lt;br /&gt;
grenade_launcher_status		= 0&lt;br /&gt;
animation_slot		        = 13&lt;br /&gt;
rpm					= 0&lt;br /&gt;
cam_dispersion		= 0&lt;br /&gt;
fire_dispersion_base	= 0&lt;br /&gt;
hit_power_critical		= 0&lt;br /&gt;
hud                             = wpn_vodka_hud&lt;br /&gt;
can_trade	                = false&lt;br /&gt;
random_sleep_a                  = 2&lt;br /&gt;
random_sleep_b                  = 6&lt;br /&gt;
quest_item      	        = false&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Важно''': visual ДОЛЖЕН существовать. OGF модели спальника можно найти в сети.&lt;br /&gt;
== Скрипты ==&lt;br /&gt;
В scripts создаём sleeping_bag.script&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
function use(s_obj)&lt;br /&gt;
	if nil == s_obj then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	if surge_manager.actor_in_cover() then&lt;br /&gt;
		ui_sleep_dialog.sleep()&lt;br /&gt;
		give_info(&amp;quot;sleep_active&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		news_manager.send_tip(db.actor, game.translate_string(&amp;quot;st_sleeping_bag_no_sleep&amp;quot;))&lt;br /&gt;
	end&lt;br /&gt;
	news_manager.send_tip(db.actor, game.translate_string(&amp;quot;st_sleeping_bag_take_reminder&amp;quot;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function use_inventory_item(s_obj)&lt;br /&gt;
	if s_obj and s_obj.section_name and s_obj:section_name() == &amp;quot;sleeping_bag&amp;quot; then&lt;br /&gt;
		use(s_obj)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В bind_stalker.script в actor_binder:on_item_drop прописываем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
function actor_binder:on_item_drop (obj)&lt;br /&gt;
	if(obj) then&lt;br /&gt;
		local s_obj = alife():object(obj:id())&lt;br /&gt;
		sleeping_bag.use_inventory_item(s_obj)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В configs\text\rus\st_items_equipment.xml добавляем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
      &amp;lt;string id=&amp;quot;st_sleeping_bag_title&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;«Спальный мешок»&amp;lt;/text&amp;gt;&lt;br /&gt;
      &amp;lt;/string&amp;gt;&lt;br /&gt;
      &amp;lt;string id=&amp;quot;st_sleeping_bag_descr&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;Непромокаемый спальный мешок.  Один из способов переночевать в Зоне. Но от радиации не спасёт, поэтому для ночевки нужно искать места по-укромнее. Например такие, где можно переждать выброс.&amp;lt;/text&amp;gt;&lt;br /&gt;
      &amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В configs\text\rus\ui_st_screen.xml добавляем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
	&amp;lt;string id=&amp;quot;st_sleeping_bag_no_sleep&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;В этом месте не заснуть. Нужно найти более надежное укрытие, там где можно переждать выброс.&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;	&lt;br /&gt;
	&amp;lt;string id=&amp;quot;st_sleeping_bag_take_reminder&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;text&amp;gt;%c[255,255,255,0]Не забудьте забрать спальный мешок.%c[default]&amp;lt;/text&amp;gt;&lt;br /&gt;
	&amp;lt;/string&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В configs\gamepley\character_desc_general.xml ищем в самом начале&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;!-- 											 --&amp;gt;&lt;br /&gt;
&amp;lt;!--				 Actor 						 --&amp;gt;&lt;br /&gt;
&amp;lt;!-- 											 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;specific_character id=&amp;quot;actor&amp;quot; no_random = &amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;st_actor_name&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;icon&amp;gt;ui_inGame2_Hero&amp;lt;/icon&amp;gt;&lt;br /&gt;
		&amp;lt;map_icon x=&amp;quot;2&amp;quot; y=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;/map_icon&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;team&amp;gt;Actor&amp;lt;/team&amp;gt;&lt;br /&gt;
		&amp;lt;supplies&amp;gt;&lt;br /&gt;
			[spawn] \n&lt;br /&gt;
			device_torch \n&lt;br /&gt;
			wpn_binoc \n&lt;br /&gt;
			wpn_knife = 1 \n&lt;br /&gt;
			detector_simple \n&lt;br /&gt;
			helm_respirator \n&lt;br /&gt;
			stalker_outfit \n&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
и добавляем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
			sleeping_bag \n&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
В configs\mp\mp_ranks.ltx ищем&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[rank_0]&lt;br /&gt;
rank_name						= st_rank_novice		; звание&lt;br /&gt;
rank_exp						= 0, 0          ; опыт, артефакты&lt;br /&gt;
rank_diff_exp_bonus				= 1, 1.5, 2, 3, 4&lt;br /&gt;
;----------------- new items -------------------------&lt;br /&gt;
available_items					=&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
И в конце длиннющей строки available_items через запятую добавляем sleeping_bag&lt;br /&gt;
&lt;br /&gt;
Запускаем новую игру и тестируем&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Скрипты]]&lt;/div&gt;</summary>
		<author><name>Adarkman</name></author>	</entry>

	</feed>