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

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B0%D0%B7%D0%B1%D0%BE%D1%80</id>
		<title>SoC. Авторазбор</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B0%D0%B7%D0%B1%D0%BE%D1%80"/>
				<updated>2014-06-07T07:20:19Z</updated>
		
		<summary type="html">&lt;p&gt;37.79.249.216: /* Автор */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Привет всем. Задался я как-то целью сделать в &amp;quot;СТАЛКЕРе&amp;quot; (версия 1.0004) машины, юзабельность которых &lt;br /&gt;
зависит от наличия в инвентаре ГГ конкретного предмета, а именно ключей от данного транспорта.&lt;br /&gt;
Спавн автотехники - пройденный этап, не буду заострять внимание, скажу лишь, что здесь привязал спавн машины к диалогу с коррумпированным майором на Кордоне. &lt;br /&gt;
Открываем файл '''config\gameplay\dialogs_escape.xml''', и находим строку:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;esc_bridge_soldiers_start_11&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
и после неё добавляем:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;esc_modify.spawn_niva&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
Выглядит будет так:&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;esc_bridge_soldiers_start_11&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;esc_modify.spawn_niva&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;next&amp;gt;12&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Прописывает ключи от Нивы в файлик '''config\misc\item.ltx''' таким образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
;;;;;;;;;;;;--ключ от нивы--;;;;;;;;;;;;&lt;br /&gt;
[niva_keys]:identity_immunities&lt;br /&gt;
GroupControlSection	= spawn_group&lt;br /&gt;
discovery_dependency =&lt;br /&gt;
$spawn                          = &amp;quot;devices\quest_items\niva_keys&amp;quot;&lt;br /&gt;
class                           = II_ATTCH&lt;br /&gt;
cform                           = skeleton&lt;br /&gt;
visual                          = equipments\item_minipda.ogf ;иконка флешки&lt;br /&gt;
radius                          = 1&lt;br /&gt;
description                     = item_niva_key&lt;br /&gt;
inv_name                        = item_car_key&lt;br /&gt;
inv_name_short                  = item_car_key&lt;br /&gt;
inv_weight                      = 0&lt;br /&gt;
inv_grid_width                  = 1&lt;br /&gt;
inv_grid_height                 = 1&lt;br /&gt;
inv_grid_x                      = 11&lt;br /&gt;
inv_grid_y                      = 23&lt;br /&gt;
cost                            = 0&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пропишем русификацию названия и описания ключа от Нивы. В файле '''config\text\rus\string_table_enc_equipment.xml''' перед '''&amp;lt;/string_table&amp;gt;''' напишем:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;string id=&amp;quot;item_car_key&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;item_niva_key&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;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаём файл '''config\creatures\vechicles.ltx''', вписываем туда конфиг Нивы с пропиской логики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[vehicle_niva]&lt;br /&gt;
GroupControlSection	= spawn_group&lt;br /&gt;
$spawn 			= &amp;quot;vehicles\veh_niva&amp;quot;&lt;br /&gt;
class			= SCRPTCAR&lt;br /&gt;
cform           = skeleton&lt;br /&gt;
visual          = physics\vehicles\niva\veh_niva_u_01.ogf&lt;br /&gt;
actor_visual	= physics\vehicles\niva\veh_niva_u_01.ogf&lt;br /&gt;
ef_equipment_type	= 3&lt;br /&gt;
ph_mass			 		= 13000&lt;br /&gt;
script_binding      	= bind_physic_object.init&lt;br /&gt;
custom_data  = scripts\cars\niva_data.ltx ; путь до логики&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Прописывает сам файл '''vechicles.ltx''' в начале файла '''system.ltx''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;#include &amp;quot;creatures\vechicles.ltx&amp;quot;&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого - создаём файл логики '''config\scripts\cars\niva_data.ltx''', с содержимым:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[logic]&lt;br /&gt;
active = ph_car&lt;br /&gt;
&lt;br /&gt;
[ph_car]&lt;br /&gt;
usable = {+actor_has_niva_key}&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Добавил в '''config\gameplay\info_l01escape.xml''' требующуюся инфопорцию:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;info_portion id=&amp;quot;actor_has_niva_key&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А дальше интересно - активировать проверку наличия у ГГ ключей додумался так: внедрил в скрипт '''scripts\escape_tasks.script''' с опросом инфопорций свои строки:&lt;br /&gt;
Находим этот блок функции&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
if	not has_alife_info(&amp;quot;tutorial_artefact_start&amp;quot;) and&lt;br /&gt;
not has_alife_info(&amp;quot;tutorial_artefact_gain&amp;quot;) and &lt;br /&gt;
actor:object(&amp;quot;af_blood_tutorial&amp;quot;) ~= nil &lt;br /&gt;
then		&lt;br /&gt;
actor:give_info_portion(&amp;quot;tutorial_artefact_gain&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Добавляем:&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
-----------------------moi_mod--------------------&lt;br /&gt;
if actor:object(&amp;quot;niva_keys&amp;quot;) ~= nil then&lt;br /&gt;
actor:give_info_portion(&amp;quot;actor_has_niva_key&amp;quot;)&lt;br /&gt;
elseif actor:object(&amp;quot;niva_keys&amp;quot;) == nil then &lt;br /&gt;
actor:disable_info_portion(&amp;quot;actor_has_niva_key&amp;quot;)&lt;br /&gt;
return true&lt;br /&gt;
end&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Получилось в итоге вот что: актёр нашёл (купил) ключи, сел в машину и поехал, а потерял или выбросил (продал, пропил и т.д.) - внутрь не попасть, как ни пытайся.&lt;br /&gt;
&lt;br /&gt;
В моём моде:&lt;br /&gt;
На Кордоне у майора Кузнецова(под мостом) спавнится &amp;quot;Нива&amp;quot; и забытые на ящике с выпивкой - ключи от неё. ГГ платит подвыпившим военным за проход, и тут же, подобрав ключи, садится в машину и исчезает, оставив майора со товарищи в большом (сравнительно) убытке.&lt;br /&gt;
Второй вариант:&lt;br /&gt;
Всё то же самое, только военные соображают быстро и открывают огонь на поражение, лишь только актёр садится в &amp;quot;Ниву&amp;quot;. Хотя - если не тормозить - и тут успеваешь свинтить.&lt;br /&gt;
&lt;br /&gt;
Сие реализовано так - cама Нива спавнится мной прямо за мостом. Создаём файл скрипта ('''scripts\esc_modify.script''') и пишем в нём:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
function spawn_niva()&lt;br /&gt;
alife():create(&amp;quot;vehicle_niva&amp;quot;, vector():set(58.205856,-2.393073,189.756988),345171,98)&lt;br /&gt;
-- ключи среди водки и закуски&lt;br /&gt;
alife():create(&amp;quot;niva_keys&amp;quot;, vector():set(61.393852,-0.143696695,154.954849),349686,97)&lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файле '''config\gameplay\info_l01escape.xml''' акция &amp;quot;открыть огонь&amp;quot; привязана к сообщению Торговца об удачном пересечении ж\д насыпи (при условии, естественно, что герой взял чужие ключи):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;info_portion id=&amp;quot;esc_find_railroad_passage_done&amp;quot;&amp;gt; ;родная часть&lt;br /&gt;
&amp;lt;action&amp;gt;esc_modify.kill_thief&amp;lt;/action&amp;gt; ;добавлено&lt;br /&gt;
&amp;lt;/info_portion&amp;gt;                        ;родная часть&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
т. е. добавлена ссылка на несуществующий пока скрипт '''esc_modify.script''' и функцию в нём ''kill_thief''.&lt;br /&gt;
&lt;br /&gt;
Пишем в файле ('''scripts\esc_modify.script''') следующее:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
function kill_thief()&lt;br /&gt;
if has_alife_info(&amp;quot;actor_has_niva_key&amp;quot;) then&lt;br /&gt;
db.actor:give_info_portion(&amp;quot;esc_bridge_pass_fire&amp;quot;)&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;
Осталось последнее, прописать кнопку, чтоб завести движок Нивы. В файле '''config\ui\ui_keybinding.xml''' пишем в группе '''kb_grp_common''' следующее:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&amp;lt;command id=&amp;quot;kb_turn_engine&amp;quot;				exe=&amp;quot;turn_engine&amp;quot;/&amp;gt;&amp;lt;/ini&amp;gt;&lt;br /&gt;
Выглядит будет так:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;group name=&amp;quot;kb_grp_common&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_turn_engine&amp;quot;				exe=&amp;quot;turn_engine&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_pause&amp;quot;						exe=&amp;quot;pause&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_use&amp;quot;						exe=&amp;quot;use&amp;quot;/&amp;gt;			&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_screenshot&amp;quot;					exe=&amp;quot;screenshot&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_quit&amp;quot;						exe=&amp;quot;quit&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_console&amp;quot;					exe=&amp;quot;console&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;ui_mm_save_game&amp;quot;				exe=&amp;quot;quick_save&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;ui_mm_load_game&amp;quot;				exe=&amp;quot;quick_load&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/group&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь заходим в игру и назначаем клавишу, чтоб завести движок.&lt;br /&gt;
&lt;br /&gt;
Вот и результат:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ключ_от_нивы.jpeg|800px|]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Авто_Нива.jpeg|800px|]]&lt;br /&gt;
&lt;br /&gt;
Файлы мода с отработанным примером по этому уроку : [http://yadi.sk/d/3btBJT_vSYS79 Скачать]&lt;br /&gt;
&lt;br /&gt;
===Автор===&lt;br /&gt;
Всем respect, ваш '''J.DLRN'''.&lt;br /&gt;
&lt;br /&gt;
Привел статью в рабочее состояние - '''World_Stalker'''&lt;br /&gt;
&lt;br /&gt;
[[Категория:Конфигурационные_файлы]]&lt;/div&gt;</summary>
		<author><name>37.79.249.216</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B0%D0%B7%D0%B1%D0%BE%D1%80</id>
		<title>SoC. Авторазбор</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B0%D0%B7%D0%B1%D0%BE%D1%80"/>
				<updated>2014-06-07T07:19:57Z</updated>
		
		<summary type="html">&lt;p&gt;37.79.249.216: /* Автор */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Привет всем. Задался я как-то целью сделать в &amp;quot;СТАЛКЕРе&amp;quot; (версия 1.0004) машины, юзабельность которых &lt;br /&gt;
зависит от наличия в инвентаре ГГ конкретного предмета, а именно ключей от данного транспорта.&lt;br /&gt;
Спавн автотехники - пройденный этап, не буду заострять внимание, скажу лишь, что здесь привязал спавн машины к диалогу с коррумпированным майором на Кордоне. &lt;br /&gt;
Открываем файл '''config\gameplay\dialogs_escape.xml''', и находим строку:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;esc_bridge_soldiers_start_11&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
и после неё добавляем:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;esc_modify.spawn_niva&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
Выглядит будет так:&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;esc_bridge_soldiers_start_11&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;esc_modify.spawn_niva&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;next&amp;gt;12&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Прописывает ключи от Нивы в файлик '''config\misc\item.ltx''' таким образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
;;;;;;;;;;;;--ключ от нивы--;;;;;;;;;;;;&lt;br /&gt;
[niva_keys]:identity_immunities&lt;br /&gt;
GroupControlSection	= spawn_group&lt;br /&gt;
discovery_dependency =&lt;br /&gt;
$spawn                          = &amp;quot;devices\quest_items\niva_keys&amp;quot;&lt;br /&gt;
class                           = II_ATTCH&lt;br /&gt;
cform                           = skeleton&lt;br /&gt;
visual                          = equipments\item_minipda.ogf ;иконка флешки&lt;br /&gt;
radius                          = 1&lt;br /&gt;
description                     = item_niva_key&lt;br /&gt;
inv_name                        = item_car_key&lt;br /&gt;
inv_name_short                  = item_car_key&lt;br /&gt;
inv_weight                      = 0&lt;br /&gt;
inv_grid_width                  = 1&lt;br /&gt;
inv_grid_height                 = 1&lt;br /&gt;
inv_grid_x                      = 11&lt;br /&gt;
inv_grid_y                      = 23&lt;br /&gt;
cost                            = 0&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пропишем русификацию названия и описания ключа от Нивы. В файле '''config\text\rus\string_table_enc_equipment.xml''' перед '''&amp;lt;/string_table&amp;gt;''' напишем:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;string id=&amp;quot;item_car_key&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;item_niva_key&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;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаём файл '''config\creatures\vechicles.ltx''', вписываем туда конфиг Нивы с пропиской логики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[vehicle_niva]&lt;br /&gt;
GroupControlSection	= spawn_group&lt;br /&gt;
$spawn 			= &amp;quot;vehicles\veh_niva&amp;quot;&lt;br /&gt;
class			= SCRPTCAR&lt;br /&gt;
cform           = skeleton&lt;br /&gt;
visual          = physics\vehicles\niva\veh_niva_u_01.ogf&lt;br /&gt;
actor_visual	= physics\vehicles\niva\veh_niva_u_01.ogf&lt;br /&gt;
ef_equipment_type	= 3&lt;br /&gt;
ph_mass			 		= 13000&lt;br /&gt;
script_binding      	= bind_physic_object.init&lt;br /&gt;
custom_data  = scripts\cars\niva_data.ltx ; путь до логики&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Прописывает сам файл '''vechicles.ltx''' в начале файла '''system.ltx''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;#include &amp;quot;creatures\vechicles.ltx&amp;quot;&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого - создаём файл логики '''config\scripts\cars\niva_data.ltx''', с содержимым:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[logic]&lt;br /&gt;
active = ph_car&lt;br /&gt;
&lt;br /&gt;
[ph_car]&lt;br /&gt;
usable = {+actor_has_niva_key}&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Добавил в '''config\gameplay\info_l01escape.xml''' требующуюся инфопорцию:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;info_portion id=&amp;quot;actor_has_niva_key&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А дальше интересно - активировать проверку наличия у ГГ ключей додумался так: внедрил в скрипт '''scripts\escape_tasks.script''' с опросом инфопорций свои строки:&lt;br /&gt;
Находим этот блок функции&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
if	not has_alife_info(&amp;quot;tutorial_artefact_start&amp;quot;) and&lt;br /&gt;
not has_alife_info(&amp;quot;tutorial_artefact_gain&amp;quot;) and &lt;br /&gt;
actor:object(&amp;quot;af_blood_tutorial&amp;quot;) ~= nil &lt;br /&gt;
then		&lt;br /&gt;
actor:give_info_portion(&amp;quot;tutorial_artefact_gain&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Добавляем:&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
-----------------------moi_mod--------------------&lt;br /&gt;
if actor:object(&amp;quot;niva_keys&amp;quot;) ~= nil then&lt;br /&gt;
actor:give_info_portion(&amp;quot;actor_has_niva_key&amp;quot;)&lt;br /&gt;
elseif actor:object(&amp;quot;niva_keys&amp;quot;) == nil then &lt;br /&gt;
actor:disable_info_portion(&amp;quot;actor_has_niva_key&amp;quot;)&lt;br /&gt;
return true&lt;br /&gt;
end&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Получилось в итоге вот что: актёр нашёл (купил) ключи, сел в машину и поехал, а потерял или выбросил (продал, пропил и т.д.) - внутрь не попасть, как ни пытайся.&lt;br /&gt;
&lt;br /&gt;
В моём моде:&lt;br /&gt;
На Кордоне у майора Кузнецова(под мостом) спавнится &amp;quot;Нива&amp;quot; и забытые на ящике с выпивкой - ключи от неё. ГГ платит подвыпившим военным за проход, и тут же, подобрав ключи, садится в машину и исчезает, оставив майора со товарищи в большом (сравнительно) убытке.&lt;br /&gt;
Второй вариант:&lt;br /&gt;
Всё то же самое, только военные соображают быстро и открывают огонь на поражение, лишь только актёр садится в &amp;quot;Ниву&amp;quot;. Хотя - если не тормозить - и тут успеваешь свинтить.&lt;br /&gt;
&lt;br /&gt;
Сие реализовано так - cама Нива спавнится мной прямо за мостом. Создаём файл скрипта ('''scripts\esc_modify.script''') и пишем в нём:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
function spawn_niva()&lt;br /&gt;
alife():create(&amp;quot;vehicle_niva&amp;quot;, vector():set(58.205856,-2.393073,189.756988),345171,98)&lt;br /&gt;
-- ключи среди водки и закуски&lt;br /&gt;
alife():create(&amp;quot;niva_keys&amp;quot;, vector():set(61.393852,-0.143696695,154.954849),349686,97)&lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файле '''config\gameplay\info_l01escape.xml''' акция &amp;quot;открыть огонь&amp;quot; привязана к сообщению Торговца об удачном пересечении ж\д насыпи (при условии, естественно, что герой взял чужие ключи):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;info_portion id=&amp;quot;esc_find_railroad_passage_done&amp;quot;&amp;gt; ;родная часть&lt;br /&gt;
&amp;lt;action&amp;gt;esc_modify.kill_thief&amp;lt;/action&amp;gt; ;добавлено&lt;br /&gt;
&amp;lt;/info_portion&amp;gt;                        ;родная часть&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
т. е. добавлена ссылка на несуществующий пока скрипт '''esc_modify.script''' и функцию в нём ''kill_thief''.&lt;br /&gt;
&lt;br /&gt;
Пишем в файле ('''scripts\esc_modify.script''') следующее:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
function kill_thief()&lt;br /&gt;
if has_alife_info(&amp;quot;actor_has_niva_key&amp;quot;) then&lt;br /&gt;
db.actor:give_info_portion(&amp;quot;esc_bridge_pass_fire&amp;quot;)&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;
Осталось последнее, прописать кнопку, чтоб завести движок Нивы. В файле '''config\ui\ui_keybinding.xml''' пишем в группе '''kb_grp_common''' следующее:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&amp;lt;command id=&amp;quot;kb_turn_engine&amp;quot;				exe=&amp;quot;turn_engine&amp;quot;/&amp;gt;&amp;lt;/ini&amp;gt;&lt;br /&gt;
Выглядит будет так:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;group name=&amp;quot;kb_grp_common&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_turn_engine&amp;quot;				exe=&amp;quot;turn_engine&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_pause&amp;quot;						exe=&amp;quot;pause&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_use&amp;quot;						exe=&amp;quot;use&amp;quot;/&amp;gt;			&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_screenshot&amp;quot;					exe=&amp;quot;screenshot&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_quit&amp;quot;						exe=&amp;quot;quit&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_console&amp;quot;					exe=&amp;quot;console&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;ui_mm_save_game&amp;quot;				exe=&amp;quot;quick_save&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;ui_mm_load_game&amp;quot;				exe=&amp;quot;quick_load&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/group&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь заходим в игру и назначаем клавишу, чтоб завести движок.&lt;br /&gt;
&lt;br /&gt;
Вот и результат:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ключ_от_нивы.jpeg|800px|]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Авто_Нива.jpeg|800px|]]&lt;br /&gt;
&lt;br /&gt;
Файлы мода с отработанным примером по этому уроку : [http://yadi.sk/d/3btBJT_vSYS79 Скачать]&lt;br /&gt;
&lt;br /&gt;
===Автор===&lt;br /&gt;
Всем respect, ваш '''J.DLRN'''.&lt;br /&gt;
&lt;br /&gt;
Привел статью в рабочее состояния - '''World_Stalker'''&lt;br /&gt;
&lt;br /&gt;
[[Категория:Конфигурационные_файлы]]&lt;/div&gt;</summary>
		<author><name>37.79.249.216</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B0%D0%B7%D0%B1%D0%BE%D1%80</id>
		<title>SoC. Авторазбор</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B0%D0%B7%D0%B1%D0%BE%D1%80"/>
				<updated>2014-06-07T07:19:39Z</updated>
		
		<summary type="html">&lt;p&gt;37.79.249.216: /* Автор */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Привет всем. Задался я как-то целью сделать в &amp;quot;СТАЛКЕРе&amp;quot; (версия 1.0004) машины, юзабельность которых &lt;br /&gt;
зависит от наличия в инвентаре ГГ конкретного предмета, а именно ключей от данного транспорта.&lt;br /&gt;
Спавн автотехники - пройденный этап, не буду заострять внимание, скажу лишь, что здесь привязал спавн машины к диалогу с коррумпированным майором на Кордоне. &lt;br /&gt;
Открываем файл '''config\gameplay\dialogs_escape.xml''', и находим строку:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;esc_bridge_soldiers_start_11&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
и после неё добавляем:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;esc_modify.spawn_niva&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
Выглядит будет так:&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;esc_bridge_soldiers_start_11&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;esc_modify.spawn_niva&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;next&amp;gt;12&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Прописывает ключи от Нивы в файлик '''config\misc\item.ltx''' таким образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
;;;;;;;;;;;;--ключ от нивы--;;;;;;;;;;;;&lt;br /&gt;
[niva_keys]:identity_immunities&lt;br /&gt;
GroupControlSection	= spawn_group&lt;br /&gt;
discovery_dependency =&lt;br /&gt;
$spawn                          = &amp;quot;devices\quest_items\niva_keys&amp;quot;&lt;br /&gt;
class                           = II_ATTCH&lt;br /&gt;
cform                           = skeleton&lt;br /&gt;
visual                          = equipments\item_minipda.ogf ;иконка флешки&lt;br /&gt;
radius                          = 1&lt;br /&gt;
description                     = item_niva_key&lt;br /&gt;
inv_name                        = item_car_key&lt;br /&gt;
inv_name_short                  = item_car_key&lt;br /&gt;
inv_weight                      = 0&lt;br /&gt;
inv_grid_width                  = 1&lt;br /&gt;
inv_grid_height                 = 1&lt;br /&gt;
inv_grid_x                      = 11&lt;br /&gt;
inv_grid_y                      = 23&lt;br /&gt;
cost                            = 0&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пропишем русификацию названия и описания ключа от Нивы. В файле '''config\text\rus\string_table_enc_equipment.xml''' перед '''&amp;lt;/string_table&amp;gt;''' напишем:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;string id=&amp;quot;item_car_key&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;item_niva_key&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;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаём файл '''config\creatures\vechicles.ltx''', вписываем туда конфиг Нивы с пропиской логики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[vehicle_niva]&lt;br /&gt;
GroupControlSection	= spawn_group&lt;br /&gt;
$spawn 			= &amp;quot;vehicles\veh_niva&amp;quot;&lt;br /&gt;
class			= SCRPTCAR&lt;br /&gt;
cform           = skeleton&lt;br /&gt;
visual          = physics\vehicles\niva\veh_niva_u_01.ogf&lt;br /&gt;
actor_visual	= physics\vehicles\niva\veh_niva_u_01.ogf&lt;br /&gt;
ef_equipment_type	= 3&lt;br /&gt;
ph_mass			 		= 13000&lt;br /&gt;
script_binding      	= bind_physic_object.init&lt;br /&gt;
custom_data  = scripts\cars\niva_data.ltx ; путь до логики&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Прописывает сам файл '''vechicles.ltx''' в начале файла '''system.ltx''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;#include &amp;quot;creatures\vechicles.ltx&amp;quot;&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого - создаём файл логики '''config\scripts\cars\niva_data.ltx''', с содержимым:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[logic]&lt;br /&gt;
active = ph_car&lt;br /&gt;
&lt;br /&gt;
[ph_car]&lt;br /&gt;
usable = {+actor_has_niva_key}&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Добавил в '''config\gameplay\info_l01escape.xml''' требующуюся инфопорцию:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;info_portion id=&amp;quot;actor_has_niva_key&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А дальше интересно - активировать проверку наличия у ГГ ключей додумался так: внедрил в скрипт '''scripts\escape_tasks.script''' с опросом инфопорций свои строки:&lt;br /&gt;
Находим этот блок функции&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
if	not has_alife_info(&amp;quot;tutorial_artefact_start&amp;quot;) and&lt;br /&gt;
not has_alife_info(&amp;quot;tutorial_artefact_gain&amp;quot;) and &lt;br /&gt;
actor:object(&amp;quot;af_blood_tutorial&amp;quot;) ~= nil &lt;br /&gt;
then		&lt;br /&gt;
actor:give_info_portion(&amp;quot;tutorial_artefact_gain&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Добавляем:&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
-----------------------moi_mod--------------------&lt;br /&gt;
if actor:object(&amp;quot;niva_keys&amp;quot;) ~= nil then&lt;br /&gt;
actor:give_info_portion(&amp;quot;actor_has_niva_key&amp;quot;)&lt;br /&gt;
elseif actor:object(&amp;quot;niva_keys&amp;quot;) == nil then &lt;br /&gt;
actor:disable_info_portion(&amp;quot;actor_has_niva_key&amp;quot;)&lt;br /&gt;
return true&lt;br /&gt;
end&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Получилось в итоге вот что: актёр нашёл (купил) ключи, сел в машину и поехал, а потерял или выбросил (продал, пропил и т.д.) - внутрь не попасть, как ни пытайся.&lt;br /&gt;
&lt;br /&gt;
В моём моде:&lt;br /&gt;
На Кордоне у майора Кузнецова(под мостом) спавнится &amp;quot;Нива&amp;quot; и забытые на ящике с выпивкой - ключи от неё. ГГ платит подвыпившим военным за проход, и тут же, подобрав ключи, садится в машину и исчезает, оставив майора со товарищи в большом (сравнительно) убытке.&lt;br /&gt;
Второй вариант:&lt;br /&gt;
Всё то же самое, только военные соображают быстро и открывают огонь на поражение, лишь только актёр садится в &amp;quot;Ниву&amp;quot;. Хотя - если не тормозить - и тут успеваешь свинтить.&lt;br /&gt;
&lt;br /&gt;
Сие реализовано так - cама Нива спавнится мной прямо за мостом. Создаём файл скрипта ('''scripts\esc_modify.script''') и пишем в нём:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
function spawn_niva()&lt;br /&gt;
alife():create(&amp;quot;vehicle_niva&amp;quot;, vector():set(58.205856,-2.393073,189.756988),345171,98)&lt;br /&gt;
-- ключи среди водки и закуски&lt;br /&gt;
alife():create(&amp;quot;niva_keys&amp;quot;, vector():set(61.393852,-0.143696695,154.954849),349686,97)&lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файле '''config\gameplay\info_l01escape.xml''' акция &amp;quot;открыть огонь&amp;quot; привязана к сообщению Торговца об удачном пересечении ж\д насыпи (при условии, естественно, что герой взял чужие ключи):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;info_portion id=&amp;quot;esc_find_railroad_passage_done&amp;quot;&amp;gt; ;родная часть&lt;br /&gt;
&amp;lt;action&amp;gt;esc_modify.kill_thief&amp;lt;/action&amp;gt; ;добавлено&lt;br /&gt;
&amp;lt;/info_portion&amp;gt;                        ;родная часть&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
т. е. добавлена ссылка на несуществующий пока скрипт '''esc_modify.script''' и функцию в нём ''kill_thief''.&lt;br /&gt;
&lt;br /&gt;
Пишем в файле ('''scripts\esc_modify.script''') следующее:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
function kill_thief()&lt;br /&gt;
if has_alife_info(&amp;quot;actor_has_niva_key&amp;quot;) then&lt;br /&gt;
db.actor:give_info_portion(&amp;quot;esc_bridge_pass_fire&amp;quot;)&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;
Осталось последнее, прописать кнопку, чтоб завести движок Нивы. В файле '''config\ui\ui_keybinding.xml''' пишем в группе '''kb_grp_common''' следующее:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&amp;lt;command id=&amp;quot;kb_turn_engine&amp;quot;				exe=&amp;quot;turn_engine&amp;quot;/&amp;gt;&amp;lt;/ini&amp;gt;&lt;br /&gt;
Выглядит будет так:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;group name=&amp;quot;kb_grp_common&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_turn_engine&amp;quot;				exe=&amp;quot;turn_engine&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_pause&amp;quot;						exe=&amp;quot;pause&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_use&amp;quot;						exe=&amp;quot;use&amp;quot;/&amp;gt;			&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_screenshot&amp;quot;					exe=&amp;quot;screenshot&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_quit&amp;quot;						exe=&amp;quot;quit&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_console&amp;quot;					exe=&amp;quot;console&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;ui_mm_save_game&amp;quot;				exe=&amp;quot;quick_save&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;ui_mm_load_game&amp;quot;				exe=&amp;quot;quick_load&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/group&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь заходим в игру и назначаем клавишу, чтоб завести движок.&lt;br /&gt;
&lt;br /&gt;
Вот и результат:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ключ_от_нивы.jpeg|800px|]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Авто_Нива.jpeg|800px|]]&lt;br /&gt;
&lt;br /&gt;
Файлы мода с отработанным примером по этому уроку : [http://yadi.sk/d/3btBJT_vSYS79 Скачать]&lt;br /&gt;
&lt;br /&gt;
===Автор===&lt;br /&gt;
Всем respect, ваш '''J.DLRN'''.&lt;br /&gt;
Привел статью в рабочее состояния - '''World_Stalker'''&lt;br /&gt;
&lt;br /&gt;
[[Категория:Конфигурационные_файлы]]&lt;/div&gt;</summary>
		<author><name>37.79.249.216</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B0%D0%B7%D0%B1%D0%BE%D1%80</id>
		<title>SoC. Авторазбор</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B0%D0%B7%D0%B1%D0%BE%D1%80"/>
				<updated>2014-06-07T07:13:19Z</updated>
		
		<summary type="html">&lt;p&gt;37.79.249.216: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Привет всем. Задался я как-то целью сделать в &amp;quot;СТАЛКЕРе&amp;quot; (версия 1.0004) машины, юзабельность которых &lt;br /&gt;
зависит от наличия в инвентаре ГГ конкретного предмета, а именно ключей от данного транспорта.&lt;br /&gt;
Спавн автотехники - пройденный этап, не буду заострять внимание, скажу лишь, что здесь привязал спавн машины к диалогу с коррумпированным майором на Кордоне. &lt;br /&gt;
Открываем файл '''config\gameplay\dialogs_escape.xml''', и находим строку:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;esc_bridge_soldiers_start_11&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
и после неё добавляем:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;esc_modify.spawn_niva&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
Выглядит будет так:&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;phrase id=&amp;quot;11&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;text&amp;gt;esc_bridge_soldiers_start_11&amp;lt;/text&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;esc_modify.spawn_niva&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;next&amp;gt;12&amp;lt;/next&amp;gt;&lt;br /&gt;
&amp;lt;/phrase&amp;gt;&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Прописывает ключи от Нивы в файлик '''config\misc\item.ltx''' таким образом:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
;;;;;;;;;;;;--ключ от нивы--;;;;;;;;;;;;&lt;br /&gt;
[niva_keys]:identity_immunities&lt;br /&gt;
GroupControlSection	= spawn_group&lt;br /&gt;
discovery_dependency =&lt;br /&gt;
$spawn                          = &amp;quot;devices\quest_items\niva_keys&amp;quot;&lt;br /&gt;
class                           = II_ATTCH&lt;br /&gt;
cform                           = skeleton&lt;br /&gt;
visual                          = equipments\item_minipda.ogf ;иконка флешки&lt;br /&gt;
radius                          = 1&lt;br /&gt;
description                     = item_niva_key&lt;br /&gt;
inv_name                        = item_car_key&lt;br /&gt;
inv_name_short                  = item_car_key&lt;br /&gt;
inv_weight                      = 0&lt;br /&gt;
inv_grid_width                  = 1&lt;br /&gt;
inv_grid_height                 = 1&lt;br /&gt;
inv_grid_x                      = 11&lt;br /&gt;
inv_grid_y                      = 23&lt;br /&gt;
cost                            = 0&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пропишем русификацию названия и описания ключа от Нивы. В файле '''config\text\rus\string_table_enc_equipment.xml''' перед '''&amp;lt;/string_table&amp;gt;''' напишем:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;string id=&amp;quot;item_car_key&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;item_niva_key&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;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Создаём файл '''config\creatures\vechicles.ltx''', вписываем туда конфиг Нивы с пропиской логики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[vehicle_niva]&lt;br /&gt;
GroupControlSection	= spawn_group&lt;br /&gt;
$spawn 			= &amp;quot;vehicles\veh_niva&amp;quot;&lt;br /&gt;
class			= SCRPTCAR&lt;br /&gt;
cform           = skeleton&lt;br /&gt;
visual          = physics\vehicles\niva\veh_niva_u_01.ogf&lt;br /&gt;
actor_visual	= physics\vehicles\niva\veh_niva_u_01.ogf&lt;br /&gt;
ef_equipment_type	= 3&lt;br /&gt;
ph_mass			 		= 13000&lt;br /&gt;
script_binding      	= bind_physic_object.init&lt;br /&gt;
custom_data  = scripts\cars\niva_data.ltx ; путь до логики&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Прописывает сам файл '''vechicles.ltx''' в начале файла '''system.ltx''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;#include &amp;quot;creatures\vechicles.ltx&amp;quot;&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После этого - создаём файл логики '''config\scripts\cars\niva_data.ltx''', с содержимым:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
[logic]&lt;br /&gt;
active = ph_car&lt;br /&gt;
&lt;br /&gt;
[ph_car]&lt;br /&gt;
usable = {+actor_has_niva_key}&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Добавил в '''config\gameplay\info_l01escape.xml''' требующуюся инфопорцию:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;info_portion id=&amp;quot;actor_has_niva_key&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
А дальше интересно - активировать проверку наличия у ГГ ключей додумался так: внедрил в скрипт '''scripts\escape_tasks.script''' с опросом инфопорций свои строки:&lt;br /&gt;
Находим этот блок функции&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
if	not has_alife_info(&amp;quot;tutorial_artefact_start&amp;quot;) and&lt;br /&gt;
not has_alife_info(&amp;quot;tutorial_artefact_gain&amp;quot;) and &lt;br /&gt;
actor:object(&amp;quot;af_blood_tutorial&amp;quot;) ~= nil &lt;br /&gt;
then		&lt;br /&gt;
actor:give_info_portion(&amp;quot;tutorial_artefact_gain&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Добавляем:&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
-----------------------moi_mod--------------------&lt;br /&gt;
if actor:object(&amp;quot;niva_keys&amp;quot;) ~= nil then&lt;br /&gt;
actor:give_info_portion(&amp;quot;actor_has_niva_key&amp;quot;)&lt;br /&gt;
elseif actor:object(&amp;quot;niva_keys&amp;quot;) == nil then &lt;br /&gt;
actor:disable_info_portion(&amp;quot;actor_has_niva_key&amp;quot;)&lt;br /&gt;
return true&lt;br /&gt;
end&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;Получилось в итоге вот что: актёр нашёл (купил) ключи, сел в машину и поехал, а потерял или выбросил (продал, пропил и т.д.) - внутрь не попасть, как ни пытайся.&lt;br /&gt;
&lt;br /&gt;
В моём моде:&lt;br /&gt;
На Кордоне у майора Кузнецова(под мостом) спавнится &amp;quot;Нива&amp;quot; и забытые на ящике с выпивкой - ключи от неё. ГГ платит подвыпившим военным за проход, и тут же, подобрав ключи, садится в машину и исчезает, оставив майора со товарищи в большом (сравнительно) убытке.&lt;br /&gt;
Второй вариант:&lt;br /&gt;
Всё то же самое, только военные соображают быстро и открывают огонь на поражение, лишь только актёр садится в &amp;quot;Ниву&amp;quot;. Хотя - если не тормозить - и тут успеваешь свинтить.&lt;br /&gt;
&lt;br /&gt;
Сие реализовано так - cама Нива спавнится мной прямо за мостом. Создаём файл скрипта ('''scripts\esc_modify.script''') и пишем в нём:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
function spawn_niva()&lt;br /&gt;
alife():create(&amp;quot;vehicle_niva&amp;quot;, vector():set(58.205856,-2.393073,189.756988),345171,98)&lt;br /&gt;
-- ключи среди водки и закуски&lt;br /&gt;
alife():create(&amp;quot;niva_keys&amp;quot;, vector():set(61.393852,-0.143696695,154.954849),349686,97)&lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файле '''config\gameplay\info_l01escape.xml''' акция &amp;quot;открыть огонь&amp;quot; привязана к сообщению Торговца об удачном пересечении ж\д насыпи (при условии, естественно, что герой взял чужие ключи):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;info_portion id=&amp;quot;esc_find_railroad_passage_done&amp;quot;&amp;gt; ;родная часть&lt;br /&gt;
&amp;lt;action&amp;gt;esc_modify.kill_thief&amp;lt;/action&amp;gt; ;добавлено&lt;br /&gt;
&amp;lt;/info_portion&amp;gt;                        ;родная часть&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
т. е. добавлена ссылка на несуществующий пока скрипт '''esc_modify.script''' и функцию в нём ''kill_thief''.&lt;br /&gt;
&lt;br /&gt;
Пишем в файле ('''scripts\esc_modify.script''') следующее:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
function kill_thief()&lt;br /&gt;
if has_alife_info(&amp;quot;actor_has_niva_key&amp;quot;) then&lt;br /&gt;
db.actor:give_info_portion(&amp;quot;esc_bridge_pass_fire&amp;quot;)&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;
Осталось последнее, прописать кнопку, чтоб завести движок Нивы. В файле '''config\ui\ui_keybinding.xml''' пишем в группе '''kb_grp_common''' следующее:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ini&amp;gt;&amp;lt;command id=&amp;quot;kb_turn_engine&amp;quot;				exe=&amp;quot;turn_engine&amp;quot;/&amp;gt;&amp;lt;/ini&amp;gt;&lt;br /&gt;
Выглядит будет так:&lt;br /&gt;
&amp;lt;ini&amp;gt;&lt;br /&gt;
&amp;lt;group name=&amp;quot;kb_grp_common&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_turn_engine&amp;quot;				exe=&amp;quot;turn_engine&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_pause&amp;quot;						exe=&amp;quot;pause&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_use&amp;quot;						exe=&amp;quot;use&amp;quot;/&amp;gt;			&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_screenshot&amp;quot;					exe=&amp;quot;screenshot&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_quit&amp;quot;						exe=&amp;quot;quit&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;kb_console&amp;quot;					exe=&amp;quot;console&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;ui_mm_save_game&amp;quot;				exe=&amp;quot;quick_save&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;command id=&amp;quot;ui_mm_load_game&amp;quot;				exe=&amp;quot;quick_load&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/group&amp;gt;&lt;br /&gt;
&amp;lt;/ini&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь заходим в игру и назначаем клавишу, чтоб завести движок.&lt;br /&gt;
&lt;br /&gt;
Вот и результат:&lt;br /&gt;
&lt;br /&gt;
[[Image:Ключ_от_нивы.jpeg|800px|]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Авто_Нива.jpeg|800px|]]&lt;br /&gt;
&lt;br /&gt;
Файлы мода с отработанным примером по этому уроку : [http://yadi.sk/d/3btBJT_vSYS79 Скачать]&lt;br /&gt;
&lt;br /&gt;
===Автор===&lt;br /&gt;
Всем respect, ваш '''J.DLRN'''.&lt;br /&gt;
&lt;br /&gt;
Доработал статью до рабочего состояния - '''World_Stalker'''&lt;br /&gt;
&lt;br /&gt;
[[Категория:Конфигурационные_файлы]]&lt;/div&gt;</summary>
		<author><name>37.79.249.216</name></author>	</entry>

	</feed>