<?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=Sergey</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=Sergey"/>
		<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/Sergey"/>
		<updated>2026-04-29T19:31:32Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%9D%D0%B5_%D0%B1%D0%B5%D1%81%D0%BA%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B5_%D0%B1%D0%BE%D0%BB%D1%82%D1%8B</id>
		<title>SoC. Не бесконечные болты</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%9D%D0%B5_%D0%B1%D0%B5%D1%81%D0%BA%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B5_%D0%B1%D0%BE%D0%BB%D1%82%D1%8B"/>
				<updated>2015-03-15T06:14:35Z</updated>
		
		<summary type="html">&lt;p&gt;Sergey: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Итак тут я опишу как реализовать болты которые будут заканчиваться. Сразу пишу о том, что будем делать основываясь на гранатах, то есть не исключено, что болт может рвануть (не нанеся урон и только через продолжительный участок времени, так что гг навряд ли будет по близости.), а также, если бросим болт под ноги НПСу, он шуганётся, как от грены (это на самом деле не плохо, если отключены глаза на затылке, можно попробовать их таким образом отвлечь).&lt;br /&gt;
&lt;br /&gt;
Итак, приступим.&amp;lt;br&amp;gt;&lt;br /&gt;
Нам потребуются такие файлы:&amp;lt;br&amp;gt;&lt;br /&gt;
'''gamedata\config\weapons\w_rgd5.ltx'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''gamedata\config\weapons\w_bolt.ltx'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''gamedata\config\misc\items.ltx'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''gamedata\scripts\escape_dialog.script'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''gamedata\scripts\bind_stalker.script'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В первую очередь лезем в файл w_bolt.ltx, там самая первая строка, которая за что-то отвечает:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[bolt]:identity_immunities&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Меняем её вот так:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[old_bolt]:identity_immunities&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Сохраняем и закрываем. Затем, открываем файл w_rgd5.ltx, спускаемся в самый низ и пишем это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[bolt]:grenade_rgd5 &lt;br /&gt;
visual				= weapons\bolt\wpn_bolt.ogf&lt;br /&gt;
inv_name			= &amp;quot;Болт&amp;quot;&lt;br /&gt;
inv_name_short		= &amp;quot;Болт&amp;quot;&lt;br /&gt;
inv_weight			= 0.05&lt;br /&gt;
cost				= 1&lt;br /&gt;
slot                                 = 5&lt;br /&gt;
hud					= bolt_hud2&lt;br /&gt;
ef_weapon_type		= 1&lt;br /&gt;
description			= &amp;quot;Обычный металлический болт&amp;quot;&lt;br /&gt;
destroy_time		= 5000000;3500&lt;br /&gt;
&lt;br /&gt;
attach_position_offset	= -0.021,-0.075,0.0&lt;br /&gt;
attach_angle_offset		= 0,0,0&lt;br /&gt;
attach_bone_name		= &lt;br /&gt;
&lt;br /&gt;
blast				= 0&lt;br /&gt;
blast_r				= 0&lt;br /&gt;
blast_impulse		= 0&lt;br /&gt;
;delete&lt;br /&gt;
blast_impulse_factor = 1&lt;br /&gt;
&lt;br /&gt;
frags				= 0&lt;br /&gt;
frags_r				= 0&lt;br /&gt;
frag_hit			= 0&lt;br /&gt;
frag_hit_impulse	= 0&lt;br /&gt;
&lt;br /&gt;
;звуки&lt;br /&gt;
snd_explode = monsters\biting\def_0    ;rgd5_explode&lt;br /&gt;
snd_checkout = monsters\biting\def_0&lt;br /&gt;
explode_particles	= weapons\wg-hit-ground&lt;br /&gt;
&lt;br /&gt;
inv_grid_width		= 1&lt;br /&gt;
inv_grid_height		= 1&lt;br /&gt;
inv_grid_x			= 22&lt;br /&gt;
inv_grid_y			= 6&lt;br /&gt;
&lt;br /&gt;
light_color		         = 0.0,0.0,0.0&lt;br /&gt;
light_range		         = 0.0&lt;br /&gt;
light_time 		         = 0.0&lt;br /&gt;
&lt;br /&gt;
[bolt_hud2]&lt;br /&gt;
fire_point          = 0.05, 0.0, 0.1&lt;br /&gt;
fire_bone           = bolt_0&lt;br /&gt;
orientation         = 0,0,0&lt;br /&gt;
position            = 0,0,0&lt;br /&gt;
visual              = weapons\bolt\wpn_bolt_hud.ogf&lt;br /&gt;
&lt;br /&gt;
throw_point			= 0,0.4,0.3&lt;br /&gt;
throw_dir			= 0,0,0&lt;br /&gt;
&lt;br /&gt;
anim_show			= draw3&lt;br /&gt;
anim_hide			= holster_0&lt;br /&gt;
anim_idle			= idle_0&lt;br /&gt;
anim_playing		= idle_01&lt;br /&gt;
anim_throw_begin	              = attack_0_begin&lt;br /&gt;
anim_throw_idle		= attack_0_idle&lt;br /&gt;
anim_throw_act		= attack_0_act	&lt;br /&gt;
anim_throw_end		= attack_0_end&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подробно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[bolt]:grenade_rgd5 ;--секция с отсылкой на секцию grenade_rgd5&lt;br /&gt;
visual				= weapons\bolt\wpn_bolt.ogf ;--визуал, в данном случае модель болта&lt;br /&gt;
inv_name			= &amp;quot;Болт&amp;quot; ;--название&lt;br /&gt;
inv_name_short		= &amp;quot;Болт&amp;quot; ;--название болта лежащего на земле&lt;br /&gt;
inv_weight			= 0.05 ;вес&lt;br /&gt;
cost				= 1 ;цена за штуку&lt;br /&gt;
slot                                 = 5 ;--слот для болта&lt;br /&gt;
hud					= bolt_hud2 ;--ссылка на худ&lt;br /&gt;
ef_weapon_type		= 1 ; тип оружия (не менять ни в коем случае, можно сломать двигло)&lt;br /&gt;
description			= &amp;quot;Обычный металлический болт&amp;quot; ;--описание предмета&lt;br /&gt;
destroy_time		= 5000000;3500 ; лучше оставить как есть, а так это время через которое болт пропадёт&lt;br /&gt;
&lt;br /&gt;
attach_position_offset	= -0.021,-0.075,0.0&lt;br /&gt;
attach_angle_offset		= 0,0,0&lt;br /&gt;
attach_bone_name		= &lt;br /&gt;
&lt;br /&gt;
blast				= 0 ; мощность взрыва, так как это болт, пусть будет 0&lt;br /&gt;
blast_r				= 0 ; радиус взрыва&lt;br /&gt;
blast_impulse		= 0 ; импульс от взрыва (отражается на дальности отлёта туши от места взрыва)&lt;br /&gt;
;delete&lt;br /&gt;
blast_impulse_factor = 1&lt;br /&gt;
&lt;br /&gt;
frags				= 0 ; кол-во осколков&lt;br /&gt;
frags_r				= 0 ; радиус разлёта осколков&lt;br /&gt;
frag_hit			= 0 ; урон от 1 попавшего осколка&lt;br /&gt;
frag_hit_impulse	= 0 ; импульс от 1 попавшего осколка&lt;br /&gt;
&lt;br /&gt;
;звуки&lt;br /&gt;
snd_explode = monsters\biting\def_0    ;rgd5_explode звук взрыва&lt;br /&gt;
snd_checkout = monsters\biting\def_0 ;звук броска&lt;br /&gt;
explode_particles	= weapons\wg-hit-ground ; партикл взрыва (в данном случае поставлен партикл ничего не показывающий)&lt;br /&gt;
&lt;br /&gt;
inv_grid_width		= 1 &lt;br /&gt;
inv_grid_height		= 1&lt;br /&gt;
inv_grid_x			= 22&lt;br /&gt;
inv_grid_y			= 6&lt;br /&gt;
&lt;br /&gt;
light_color		         = 0.0,0.0,0.0 ;цвет освещения во время взрыва по RGB&lt;br /&gt;
light_range		         = 0.0 ;насыщенность на сколько я понимаю&lt;br /&gt;
light_time 		         = 0.0 ;время подсветки&lt;br /&gt;
&lt;br /&gt;
[bolt_hud2] ;секция худа&lt;br /&gt;
fire_point          = 0.05, 0.0, 0.1&lt;br /&gt;
fire_bone           = bolt_0&lt;br /&gt;
orientation         = 0,0,0&lt;br /&gt;
position            = 0,0,0&lt;br /&gt;
visual              = weapons\bolt\wpn_bolt_hud.ogf ;Визуал болта в руках гг&lt;br /&gt;
&lt;br /&gt;
throw_point			= 0,0.4,0.3&lt;br /&gt;
throw_dir			= 0,0,0&lt;br /&gt;
&lt;br /&gt;
anim_show			= draw3&lt;br /&gt;
anim_hide			= holster_0&lt;br /&gt;
anim_idle			= idle_0&lt;br /&gt;
anim_playing		= idle_01&lt;br /&gt;
anim_throw_begin	              = attack_0_begin&lt;br /&gt;
anim_throw_idle		= attack_0_idle&lt;br /&gt;
anim_throw_act		= attack_0_act	&lt;br /&gt;
anim_throw_end		= attack_0_end&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Всё, сохраняем, закрываем. Этот файл нам больше не нужен. Теперь лезем в файл items.ltx и в конец пишем:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[bolt_box]:identity_immunities&lt;br /&gt;
GroupControlSection	= spawn_group&lt;br /&gt;
discovery_dependency = &lt;br /&gt;
$spawn 				= &amp;quot;food and drugs\kolbasa&amp;quot;&lt;br /&gt;
;$prefetch 			= 32&lt;br /&gt;
class				= II_FOOD&lt;br /&gt;
cform				= skeleton&lt;br /&gt;
visual				= physics\box\box_metall_01.ogf&lt;br /&gt;
radius				= 1&lt;br /&gt;
;script_binding		= escape_dialog.use_snd&lt;br /&gt;
&lt;br /&gt;
inv_name			        = &amp;quot;Коробка болтов&amp;quot;&lt;br /&gt;
inv_name_short		        = &amp;quot;Коробка болтов&amp;quot;&lt;br /&gt;
description			= &amp;quot;Коробка с болтами, содержит в себе 25 болтов.&amp;quot;&lt;br /&gt;
inv_weight			= 1.35&lt;br /&gt;
can_trade			= on&lt;br /&gt;
inv_grid_width		= 2&lt;br /&gt;
inv_grid_height		= 1&lt;br /&gt;
inv_grid_x			= 8&lt;br /&gt;
inv_grid_y			= 18&lt;br /&gt;
cost				= 30&lt;br /&gt;
&lt;br /&gt;
; eatable item&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;
&lt;br /&gt;
; food item&lt;br /&gt;
slot				= 4&lt;br /&gt;
animation_slot		= 4&lt;br /&gt;
&lt;br /&gt;
;hud item&lt;br /&gt;
hud = wpn_vodka_hud&lt;br /&gt;
&lt;br /&gt;
attach_angle_offset		= 0.440521, 1.378287, -0.644026&lt;br /&gt;
attach_position_offset	= 0.104196, -0.010821, 0.076969&lt;br /&gt;
attach_bone_name		= bip01_r_hand&lt;br /&gt;
auto_attach				= false&lt;br /&gt;
&lt;br /&gt;
// should be deleted after update&lt;br /&gt;
bone_name				= bip01_r_hand&lt;br /&gt;
position_offset			 = 0.0,0.0,0.0&lt;br /&gt;
angle_offset			 = 1.570790,1.570790,3.92699&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраняем, закрываем. Дальше мы должны открыть файл escape_dialog.script В конец файла внесём свою функцию:&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
function use_bolt_box_oz(obj)&lt;br /&gt;
    if obj ~= nil then&lt;br /&gt;
        if obj:section() == &amp;quot;bolt_box&amp;quot; then&lt;br /&gt;
            for i = 1, 25 do --Совершаем спавн 25 раз&lt;br /&gt;
    	        alife():create(&amp;quot;bolt&amp;quot;, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())&lt;br /&gt;
    	    end&lt;br /&gt;
	end&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подробно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
function use_bolt_box_oz(obj) --функция с названием use_bolt_box_oz(obj)&lt;br /&gt;
    if obj ~= nil then&lt;br /&gt;
        if obj:section() == &amp;quot;bolt_box&amp;quot; then -- объект который должны мы использовать (коробка болтов)&lt;br /&gt;
            for i = 1, 25 do --Совершаем спавн 25 раз&lt;br /&gt;
    	        alife():create(&amp;quot;bolt&amp;quot;, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) --спавн болта в инвентарь гг&lt;br /&gt;
    	    end -- окончание цикла for i =...&lt;br /&gt;
	end --окончание if&lt;br /&gt;
    end --окончание if&lt;br /&gt;
end --окончание функции&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этом же файле находим функцию give_weapon_to_actor и вносим такие строчки перед end:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    dialogs.relocate_item_section(trader, &amp;quot;bolt_box&amp;quot;, &amp;quot;in&amp;quot;)  &lt;br /&gt;
    dialogs.relocate_item_section(trader, &amp;quot;bolt&amp;quot;, &amp;quot;in&amp;quot;)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этом файле тоже всё. Теперь ломимся в bind_stalker.script Пишем в функцию function actor_binder:net_destroy() это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
self.object:set_callback(callback.use_object, nil)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И в функцию actor_binder:reinit() это:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
self.object:set_callback(callback.use_object, self.use_object, self)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В конец файла добавляем нашу функцию:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
function actor_binder:use_object(obj)&lt;br /&gt;
    escape_dialog.use_bolt_box_oz(obj)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Подробно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
function actor_binder:use_object(obj) -- function название нашей функции&lt;br /&gt;
    escape_dialog.use_bolt_box_oz(obj) --вызов функции use_bolt_box_oz(obj) из файла escape_dialog.script&lt;br /&gt;
end --окончание функции&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ну вот и всё, сохраняем и закрываем данный файл. Заходим в игру, и, если я нигде не ошибся, наблюдаем не бесконечный болт в начале игры. Чтобы болт был не один, идите к Волку, он даст вам ещё 1 болт и целую коробку болтов. Чтобы изъять болты из коробки, просто воспользуйтесь ей, кликните по ней 2 раза. Надеюсь, что статья оказалась вам полезна.&lt;br /&gt;
Автор: Dj Ultor&lt;br /&gt;
&lt;br /&gt;
[[Sergey:]]&lt;br /&gt;
Приношу свои извинения за испорченную станицу. На деюсь восстановил всё как было ранее. Отдельно приношу извинения Dj Ultor за доставленные неудобства.&lt;br /&gt;
&lt;br /&gt;
[[Категория: Скрипты]]&lt;/div&gt;</summary>
		<author><name>Sergey</name></author>	</entry>

	</feed>