<?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=92.127.101.35&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=92.127.101.35&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/92.127.101.35"/>
		<updated>2026-06-14T08:06:15Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A0%D0%B0%D0%BD%D0%B4%D0%BE%D0%BC%D0%BD%D1%8B%D0%B9_%D1%81%D0%BF%D0%B0%D0%B2%D0%BD_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2</id>
		<title>Рандомный спавн объектов</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A0%D0%B0%D0%BD%D0%B4%D0%BE%D0%BC%D0%BD%D1%8B%D0%B9_%D1%81%D0%BF%D0%B0%D0%B2%D0%BD_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2"/>
				<updated>2009-06-12T17:43:41Z</updated>
		
		<summary type="html">&lt;p&gt;92.127.101.35: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Предлагаю свой вариант рандомного спавна. В данном способе, нет проблем с проваливанием объектов под землю. Но рандомность, к сожалению фиксирована. Хотя, это даже к лучшему, так как появляется возможность спавнить только по укромным местам. Функция универсальна, что расширяет её возможности.&lt;br /&gt;
&lt;br /&gt;
Итак, в файле '''xr_effects.script''' вписываем новую функцию:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;function uni_random_spawn(items, tbl)&lt;br /&gt;
local item, ms&lt;br /&gt;
local pos, lv_id, gv_id&lt;br /&gt;
&lt;br /&gt;
        if type(items) == 'table' then&lt;br /&gt;
            item = items[math.random(#items)]&lt;br /&gt;
        else&lt;br /&gt;
            item = items&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if type(tbl[1]) == 'table' then&lt;br /&gt;
            ms = math.random(#tbl)&lt;br /&gt;
            pos = vector()&lt;br /&gt;
            pos.x = tbl[ms][1]&lt;br /&gt;
            pos.y = tbl[ms][2]&lt;br /&gt;
            pos.z = tbl[ms][3]&lt;br /&gt;
            lv_id = tbl[ms][4]&lt;br /&gt;
            gv_id = tbl[ms][5]&lt;br /&gt;
        else&lt;br /&gt;
            pos = vector()&lt;br /&gt;
            pos.x = tbl[1]&lt;br /&gt;
            pos.y = tbl[2]&lt;br /&gt;
            pos.z = tbl[3]&lt;br /&gt;
            lv_id = tbl[4]&lt;br /&gt;
            gv_id = tbl[5]&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
alife():create(item, pos, lv_id, gv_id, 65535)&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данная функция является общей, и прямого вызова не имеет.&lt;br /&gt;
Для того, чтобы произвести рандомный спавн, создаём дополнительную функцию с данными, которую мы и будем вызывать.&lt;br /&gt;
&lt;br /&gt;
'''Для рандомного спавна, случайного обекта из определённого списка:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;function my_spawn_1()&lt;br /&gt;
local items = {'item1','item2','item3','item4','item5'}&lt;br /&gt;
local tbl = {&lt;br /&gt;
{x1, y1, z1, lv1, gv1},&lt;br /&gt;
{x2, y2, z2, lv2, gv2},&lt;br /&gt;
{x3, y3, z3, lv3, gv3}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
this.uni_random_spawn(items, tbl)&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Где:&lt;br /&gt;
     таблица '''items''' - список объектов, для рандомного выбора одного из них.&lt;br /&gt;
     таблица '''tbl''' - список секций с координатами мест спавна, для рандомного выбора одной из них.&lt;br /&gt;
                   Где, '''x, y, z, lv, gv''' - заменяются на реальные координаты '''pos.x, pos.y, pos.z'''&lt;br /&gt;
                                               и '''level_vertex_id, game_vertex_id''' соответственно.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Для рандомного спавна определённого объекта:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;function my_spawn_2()&lt;br /&gt;
local items = {'item1'}      --или 'item1'&lt;br /&gt;
local tbl = {&lt;br /&gt;
{x1, y1, z1, lv1, gv1},&lt;br /&gt;
{x2, y2, z2, lv2, gv2},&lt;br /&gt;
{x3, y3, z3, lv3, gv3}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
this.uni_random_spawn(items, tbl)&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сдесь у нас прописан всего один объект, который можно не заключать в фигурные скобки.&lt;br /&gt;
&lt;br /&gt;
'''Для спавна в определённом месте, случайного объекта из определённого списка:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;function my_spawn_3()&lt;br /&gt;
local items = {'item1','item2','item3','item4','item5'}&lt;br /&gt;
local tbl = {{x1, y1, z1, lv1, gv1}}      --или {x1, y1, z1, lv1, gv1}&lt;br /&gt;
&lt;br /&gt;
this.uni_random_spawn(items, tbl)&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Для спавна в определённом месте, определённого объекта:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;function my_spawn_3()&lt;br /&gt;
local items = {'item1'}                   --или 'item1'&lt;br /&gt;
local tbl = {{x1, y1, z1, lv1, gv1}}      --или {x1, y1, z1, lv1, gv1}&lt;br /&gt;
&lt;br /&gt;
this.uni_random_spawn(items, tbl)&lt;br /&gt;
end&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вызов можно производить из любого места.&lt;br /&gt;
Для того, чтобы вызвать спавн из диалога, в нужном тэге прописываем вызов одной из функций с данными:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;action&amp;gt;xr_effects.my_spawn_1&amp;lt;/action&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Как вызывать из других мест, пожалуй пояснять не нужно.&lt;br /&gt;
&lt;br /&gt;
[[Категория:скрипты]]&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
Автор скрипта: '''SINGAPUR22'''&lt;/div&gt;</summary>
		<author><name>92.127.101.35</name></author>	</entry>

	</feed>