<?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=95.135.121.146&amp;*</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=95.135.121.146&amp;*"/>
		<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/95.135.121.146"/>
		<updated>2026-04-29T15:08:51Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B7%D0%B0%D1%81%D0%BF%D0%B0%D0%B2%D0%BD%D0%B8%D1%82%D1%8C_%D0%BC%D0%B5%D1%80%D1%82%D0%B2%D0%B5%D1%86%D0%B0</id>
		<title>Как заспавнить мертвеца</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B7%D0%B0%D1%81%D0%BF%D0%B0%D0%B2%D0%BD%D0%B8%D1%82%D1%8C_%D0%BC%D0%B5%D1%80%D1%82%D0%B2%D0%B5%D1%86%D0%B0"/>
				<updated>2013-09-17T19:47:34Z</updated>
		
		<summary type="html">&lt;p&gt;95.135.121.146: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== в ТЧ ====&lt;br /&gt;
Делаем всё так как написано в [[All.spawn. Создание NPC|этой]] статье.&amp;lt;br /&amp;gt;&lt;br /&gt;
только вместо ''health = 1'' и ''upd:health = 1''&amp;lt;br /&amp;gt;&lt;br /&gt;
ставим ''health = 0'' и ''upd:health = 0''&lt;br /&gt;
==== Прим. от Erlik====&lt;br /&gt;
''В ТЧ тоже есть метод для спавна трупа:''&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
local obj= alife():create(&amp;quot;stalker&amp;quot;, pos, lvid, gvid)  -- позиция и вертексы&lt;br /&gt;
obj:on_death()&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== в ЧН ====&lt;br /&gt;
Можно так же как и в ТЧ. Или без редактирования '''all.spawn''':&amp;lt;br /&amp;gt;&lt;br /&gt;
Создать НПС, добавить его в '''character_desc_*****.xml''', '''npc_profile.xml''' и '''spawn_sections.ltx'''&amp;lt;br /&amp;gt;&lt;br /&gt;
В последнем файле ('''spawn_sections.ltx''') добавить НПС свою логику.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[ID_непися]:stalker&lt;br /&gt;
$spawn = &amp;quot;respawn\ID_непися&amp;quot;&lt;br /&gt;
character_profile = ID_непися ;из character_desc_*****.xml&lt;br /&gt;
custom_data = scripts\скриптовая_логика_нпс.ltx ;из gamedata\configs\scripts\&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
в '''gamedata\configs\scripts\''' создать логику для нашего мертвеца:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[logic]&lt;br /&gt;
active = walker@1&lt;br /&gt;
&lt;br /&gt;
[walker@1]&lt;br /&gt;
path_walk = где_стоит&lt;br /&gt;
path_look = куда_смотрит&lt;br /&gt;
combat_ignore_cond = true&lt;br /&gt;
on_info = %=kill_npc()%&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно также сделать, чтобы НПС помер после выдачи инфопорции:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[logic]&lt;br /&gt;
active = walker@1&lt;br /&gt;
&lt;br /&gt;
[walker@1]&lt;br /&gt;
path_walk = где_стоит&lt;br /&gt;
path_look = куда_смотрит&lt;br /&gt;
combat_ignore_cond = true&lt;br /&gt;
on_info = {+инфопорция} %=kill_npc()%&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== в ЗП ====&lt;br /&gt;
В ЗП для этого даже есть специальная функция. Находится она в '''xr_effects.script''':&lt;br /&gt;
&amp;lt;lua&amp;gt;function spawn_corpse(actor, obj, p)&lt;br /&gt;
		--' p[1] - секция кого спаунить&lt;br /&gt;
		--' p[2] - имя патрульного пути где спаунить.&lt;br /&gt;
	local spawn_sect = p[1]&lt;br /&gt;
	if spawn_sect == nil then&lt;br /&gt;
		abort(&amp;quot;Wrong spawn section for 'spawn_corpse' function %s. For object %s&amp;quot;, tostring(spawn_sect), obj:name())&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local path_name = p[2]&lt;br /&gt;
	if path_name == nil then&lt;br /&gt;
		abort(&amp;quot;Wrong path_name for 'spawn_corpse' function %s. For object %s&amp;quot;, tostring(path_name), obj:name())&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not level.patrol_path_exists(path_name) then&lt;br /&gt;
		abort(&amp;quot;Path %s doesnt exist. Function 'spawn_corpse' for object %s &amp;quot;, tostring(path_name), obj:name())&lt;br /&gt;
	end&lt;br /&gt;
	local ptr = patrol(path_name)&lt;br /&gt;
	local index = p[3] or 0&lt;br /&gt;
&lt;br /&gt;
	local se_obj = alife():create(spawn_sect,&lt;br /&gt;
									ptr:point(index),&lt;br /&gt;
									ptr:level_vertex_id(0),&lt;br /&gt;
									ptr:game_vertex_id(0))&lt;br /&gt;
	se_obj:kill()&lt;br /&gt;
end&amp;lt;/lua&amp;gt;&lt;br /&gt;
Если вызывать через логику, то имеет такую структуру: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=spawn_corpse(ID_непися:walk_поинт_для_спавна)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
На примере рестриктора:&amp;lt;br /&amp;gt;&lt;br /&gt;
Спавн с самого начала игры&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[logic]&lt;br /&gt;
active = sr_idle&lt;br /&gt;
&lt;br /&gt;
[sr_idle]&lt;br /&gt;
on_info = sr_idle@end %=spawn_corpse(ID_непися:walk_поинт_для_спавна)%&lt;br /&gt;
&lt;br /&gt;
[sr_idle@end]&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Или спавн после выдачи определённой инфопорции&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[logic]&lt;br /&gt;
active = sr_idle&lt;br /&gt;
&lt;br /&gt;
[sr_idle]&lt;br /&gt;
on_info = {+инфопорция} sr_idle@end %=spawn_corpse(ID_непися:walk_поинт_для_спавна)%&lt;br /&gt;
&lt;br /&gt;
[sr_idle@end]&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Универсальный способ ====&lt;br /&gt;
Все очень просто. Создаем стандартную функцию спавна:&lt;br /&gt;
&amp;lt;lua&amp;gt;function test_corpse_spawn()&lt;br /&gt;
alife():create(&amp;quot;ID_НПС&amp;quot;,vector():set(x,y,z),lvid,gvid)&lt;br /&gt;
end&amp;lt;/lua&amp;gt;&lt;br /&gt;
'''x, y, z, lvid, gvid''' - координаты&lt;br /&gt;
И дописываем к строке спавна значение ''':on_death()''':&lt;br /&gt;
&amp;lt;lua&amp;gt;function test_corpse_spawn&lt;br /&gt;
alife():create(&amp;quot;ID_НПС&amp;quot;,vector():set(x,y,z),lvid,gvid):on_death()&lt;br /&gt;
end&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Автор:''' [[Участник:THE_ATLAS|THE_ATLAS]]&lt;br /&gt;
&amp;lt;br&amp;gt;'''Подкорректировал некоторые утверждения, оформление и добавил универсальный способ:''' [[Участник:FantomICW|FantomICW]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Конфигурационные_файлы]]&lt;/div&gt;</summary>
		<author><name>95.135.121.146</name></author>	</entry>

	</feed>