<?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=Akheront</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=Akheront"/>
		<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/Akheront"/>
		<updated>2026-05-01T20:05:53Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9E%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8_%D0%BD%D0%B0_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0</id>
		<title>Ограничение времени на выполнение квеста</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9E%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8_%D0%BD%D0%B0_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B2%D0%B5%D1%81%D1%82%D0%B0"/>
				<updated>2011-08-29T17:50:12Z</updated>
		
		<summary type="html">&lt;p&gt;Akheront: Новая страница: «Если вам вдруг захотелось создать квест, который будет атоматически провален по истечени...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Если вам вдруг захотелось создать квест, который будет атоматически провален по истечении определённого количества игрового времени, то вот один из способов.&amp;lt;br&amp;gt;&lt;br /&gt;
Понадобятся файлы:&amp;lt;br&amp;gt;&lt;br /&gt;
gamedata\config\gameplay\'''info_portion.xml'''&amp;lt;br&amp;gt;&lt;br /&gt;
gamedata\scripts\'''bind_stalker.script'''&amp;lt;br&amp;gt;&lt;br /&gt;
Открываем блокнот и пишем:&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
function quest_time()&lt;br /&gt;
	if has_alife_info(&amp;quot;task_info&amp;quot;) then                          --  проверка наличия квеста(в данном случае инфопоршень)&lt;br /&gt;
		 tim = 72000000                                            -- время по истечении которого квест будет провален (1 мин. = 50000)&lt;br /&gt;
	end&lt;br /&gt;
		 timer_t = (game.time() + tim)		                   -- присвоение значения переменной &lt;br /&gt;
		 db.actor:disable_info_portion(&amp;quot;quest_time_begin&amp;quot;)         -- отключение условия присвоения значения, чтобы значение было присвоено  только один раз&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function time_bind()                                                       -- функция для bind_stalker&lt;br /&gt;
	if has_alife_info(&amp;quot;quest_time_begin&amp;quot;) then                         -- условие присвоения значения (инфопоршень) даётся в начале квеста&lt;br /&gt;
		qwest_time()&lt;br /&gt;
	end&lt;br /&gt;
	if timer_t and not has_alife_info(&amp;quot;quest_time_done&amp;quot;) then          -- проверка истечения времени&lt;br /&gt;
		if timer_t &amp;lt;= game.time() then&lt;br /&gt;
			if has_alife_info(&amp;quot;task_info&amp;quot;) then                -- проверка наличия квеста (вдруг уже выполнен или провален по другой причине)&lt;br /&gt;
				db.actor:give_info_portion(&amp;quot;imfo_task_fail&amp;quot;)   -- выдача условия на провал (в данном случае инфопоршень)&lt;br /&gt;
				db.actor:give_info_portion(&amp;quot;quest_time_done&amp;quot;)  -- отключение счетчика времени&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;
Теперь сохраняем всё это в &amp;lt;br&amp;gt;&lt;br /&gt;
gamedata\scripts\'''имя_вашего_скрипта.script'''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее открываем '''info_portion.xml''' и дописываем туда две строки &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;info_portion id='''&amp;quot;quest_time_begin&amp;quot;'''&amp;gt;&amp;lt;/info_portion&amp;gt;       -- инфопоршень дающий право на включение счётчика&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;info_portion id='''&amp;quot;quest_time_done&amp;quot;'''&amp;gt;&amp;lt;/info_portion&amp;gt;        -- инфопоршень дающий право на выключение счётчика&amp;lt;br /&amp;gt;&lt;br /&gt;
Выглядит примерно так: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding=&amp;quot;windows-1251&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;game_information_portions&amp;gt; &lt;br /&gt;
   &amp;lt;info_portion id=&amp;quot;quest_time_begin&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt; &lt;br /&gt;
   &amp;lt;info_portion id=&amp;quot;quest_time_done&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее открываем '''bind_stalker.script''' и дописываем туда, в функцию '''function actor_binder:update(delta)'''&amp;lt;br&amp;gt;&lt;br /&gt;
строчку '''имя_вашего_скрипта.time_bind()'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Выглядит примерно так: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;lua&amp;gt;&lt;br /&gt;
function actor_binder:update(delta)&lt;br /&gt;
	object_binder.update(self, delta)&lt;br /&gt;
    &lt;br /&gt;
        имя_вашего_скрипта.time_bind()&lt;br /&gt;
&amp;lt;/lua&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Всё. Ваш квест будет провален когда значение '''game.time()''' превысит '''game.time() + &amp;lt;tt&amp;gt;tim&amp;lt;/tt&amp;gt;''' &amp;lt;br&amp;gt;&lt;br /&gt;
Здесь '''game.time()''' это игровое время в миллисекундах, а '''&amp;lt;tt&amp;gt;tim&amp;lt;/tt&amp;gt;'''  - время которое вы отведёте для выполнения задания&amp;lt;br&amp;gt;&lt;br /&gt;
Одна игровая минута = 50000.&lt;/div&gt;</summary>
		<author><name>Akheront</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%98%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D1%8B%D0%BB%D0%B5%D1%82%D0%B0_%D0%BF%D1%80%D0%B8_%D1%81%D1%82%D1%80%D0%B5%D0%BB%D1%8C%D0%B1%D0%B5_%D0%B2_%D0%B1%D0%B0%D1%80%D0%BC%D0%B5%D0%BD%D0%B0</id>
		<title>Исправление вылета при стрельбе в бармена</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%98%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D1%8B%D0%BB%D0%B5%D1%82%D0%B0_%D0%BF%D1%80%D0%B8_%D1%81%D1%82%D1%80%D0%B5%D0%BB%D1%8C%D0%B1%D0%B5_%D0%B2_%D0%B1%D0%B0%D1%80%D0%BC%D0%B5%D0%BD%D0%B0"/>
				<updated>2011-08-29T16:43:16Z</updated>
		
		<summary type="html">&lt;p&gt;Akheront: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Предыстория==&lt;br /&gt;
&lt;br /&gt;
При создании своего мода я обнаружил что если в Бармена стрелять, либо если монстр тронет его, то через некоторое время происходит вылет без лога. Проверено на патче 1.004, который является весьма популярным у модостроителей. Довольно долгое гугление результатов не дало, потому пришлось проблему решать самому. Сами понимаете, что вылеты без лога - вещь вообще трудноисправимая, и на решение у меня ушло довольно много времени. Посему, чтобы остальным мододелам, если они столкнутся с этой проблемой, не изобретать велосипед заново, я и хочу описать решение здесь.&lt;br /&gt;
&lt;br /&gt;
==Причина вылета==&lt;br /&gt;
&lt;br /&gt;
Вылет происходит при переключении Бармена из режима ведения боя в обычный, точнее не в сам момент, а в момент окончания анимации когда он прячет оружие за спину.&lt;br /&gt;
&lt;br /&gt;
==Решение==&lt;br /&gt;
&lt;br /&gt;
Наиболее простым решением было отключить вообще любую реакцию на боевые раздражители. В принципе, также как и Сидоровичу, ему эта реакция ни к чему - он все равно бессмертный. Поэтому открываем файл &lt;br /&gt;
&lt;br /&gt;
gamegata\config\scripts\[[bar_barman.ltx]]&lt;br /&gt;
&lt;br /&gt;
и в его содержимое добавляем строки, которые в листинге ниже отмечены комментарием &amp;lt;u&amp;gt;;добавляем строку&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[logic]&lt;br /&gt;
&lt;br /&gt;
active = walker@at_hole&lt;br /&gt;
&lt;br /&gt;
combat_ignore = combat_ignore&lt;br /&gt;
&lt;br /&gt;
trade = misc\trade_barman.ltx&lt;br /&gt;
&lt;br /&gt;
inv_max_weight = 10000&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[walker@at_hole]&lt;br /&gt;
&lt;br /&gt;
path_walk = bar_barman_hole_walk&lt;br /&gt;
&lt;br /&gt;
path_look = bar_barman_hole_look&lt;br /&gt;
&lt;br /&gt;
def_state_standing = barman_wait_free&lt;br /&gt;
&lt;br /&gt;
def_state_moving1 = barman_walk_free&lt;br /&gt;
&lt;br /&gt;
def_state_moving2 = barman_walk_free&lt;br /&gt;
&lt;br /&gt;
def_state_moving3 = barman_walk_free&lt;br /&gt;
&lt;br /&gt;
combat_ignore_cond = always ; добавляем строку&lt;br /&gt;
&lt;br /&gt;
meet = meet@at_hole&lt;br /&gt;
&lt;br /&gt;
danger = danger_condition@barman&lt;br /&gt;
&lt;br /&gt;
on_info = {=actor_in_zone(bar_barman_meet_zone_1)} walker@zone_1, {=actor_in_zone(bar_barman_meet_zone_2)} walker@zone_2,&lt;br /&gt;
&lt;br /&gt;
{=actor_in_zone(bar_barman_meet_zone_3)} walker@zone_3, walker@at_hole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[walker@zone_1]&lt;br /&gt;
&lt;br /&gt;
path_walk = barman_zone_1_walk&lt;br /&gt;
&lt;br /&gt;
path_look = barman_zone_1_look&lt;br /&gt;
&lt;br /&gt;
def_state_standing = barman_wait_free&lt;br /&gt;
&lt;br /&gt;
def_state_moving1 = barman_walk_free&lt;br /&gt;
&lt;br /&gt;
def_state_moving2 = barman_walk_free&lt;br /&gt;
&lt;br /&gt;
def_state_moving3 = barman_walk_free&lt;br /&gt;
&lt;br /&gt;
combat_ignore_cond = always ; добавляем строку&lt;br /&gt;
&lt;br /&gt;
meet = meet@at_hole&lt;br /&gt;
&lt;br /&gt;
danger = danger_condition@barman&lt;br /&gt;
&lt;br /&gt;
on_info = {=actor_in_zone(bar_barman_meet_zone_1)} walker@zone_1, {=actor_in_zone(bar_barman_meet_zone_2)} walker@zone_2,&lt;br /&gt;
&lt;br /&gt;
{=actor_in_zone(bar_barman_meet_zone_3)} walker@zone_3, walker@at_hole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[walker@zone_2]&lt;br /&gt;
&lt;br /&gt;
path_walk = barman_zone_2_walk&lt;br /&gt;
&lt;br /&gt;
path_look = barman_zone_2_look&lt;br /&gt;
&lt;br /&gt;
def_state_standing = barman_wait_free&lt;br /&gt;
&lt;br /&gt;
def_state_moving1 = barman_walk_free&lt;br /&gt;
&lt;br /&gt;
def_state_moving2 = barman_walk_free&lt;br /&gt;
&lt;br /&gt;
def_state_moving3 = barman_walk_free&lt;br /&gt;
&lt;br /&gt;
combat_ignore_cond = always ; добавляем строку&lt;br /&gt;
&lt;br /&gt;
meet = meet@at_hole&lt;br /&gt;
&lt;br /&gt;
danger = danger_condition@barman&lt;br /&gt;
&lt;br /&gt;
on_info = {=actor_in_zone(bar_barman_meet_zone_1)} walker@zone_1, {=actor_in_zone(bar_barman_meet_zone_2)} walker@zone_2,&lt;br /&gt;
&lt;br /&gt;
{=actor_in_zone(bar_barman_meet_zone_3)} walker@zone_3, walker@at_hole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[walker@zone_3]&lt;br /&gt;
&lt;br /&gt;
path_walk = barman_zone_3_walk&lt;br /&gt;
&lt;br /&gt;
path_look = barman_zone_3_look&lt;br /&gt;
&lt;br /&gt;
def_state_standing = barman_wait_free&lt;br /&gt;
&lt;br /&gt;
def_state_moving1 = barman_walk_free&lt;br /&gt;
&lt;br /&gt;
def_state_moving2 = barman_walk_free&lt;br /&gt;
&lt;br /&gt;
def_state_moving3 = barman_walk_free&lt;br /&gt;
&lt;br /&gt;
combat_ignore_cond = always ; добавляем строку&lt;br /&gt;
&lt;br /&gt;
meet = meet@at_hole&lt;br /&gt;
&lt;br /&gt;
danger = danger_condition@barman&lt;br /&gt;
&lt;br /&gt;
on_info = {=actor_in_zone(bar_barman_meet_zone_1)} walker@zone_1, {=actor_in_zone(bar_barman_meet_zone_2)} walker@zone_2,&lt;br /&gt;
&lt;br /&gt;
{=actor_in_zone(bar_barman_meet_zone_3)} walker@zone_3, walker@at_hole&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[meet@at_hole]&lt;br /&gt;
&lt;br /&gt;
meet_state = 2|barman_talk_free@bar_bar_barmen_hello&lt;br /&gt;
&lt;br /&gt;
meet_state_wpn = 2|barman_talk_free@bar_bar_barmen_hello&lt;br /&gt;
&lt;br /&gt;
danger = danger_condition@barman&lt;br /&gt;
&lt;br /&gt;
victim = 2|actor&lt;br /&gt;
&lt;br /&gt;
victim_wpn = 2|actor&lt;br /&gt;
&lt;br /&gt;
use = true&lt;br /&gt;
&lt;br /&gt;
use_wpn = true&lt;br /&gt;
&lt;br /&gt;
meet_dialog		=  bar_bar_barmen_start&lt;br /&gt;
&lt;br /&gt;
combat_ignore_cond = always ; добавляем строку&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[danger_condition@barman]&lt;br /&gt;
&lt;br /&gt;
ignore_distance       = 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[combat_ignore]&lt;br /&gt;
&lt;br /&gt;
combat_ignore_cond = always&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
UPD:&lt;br /&gt;
&lt;br /&gt;
При убийстве Бармена вылет может происходить так же и по другой причине. Секция торговцев [trader] не прописана в менеджере спавна предметов на трупах НПС.&amp;lt;br&amp;gt;&lt;br /&gt;
Устранить это можно следующим образом.&amp;lt;br&amp;gt;&lt;br /&gt;
Для этого нам понадобятся файлы:&amp;lt;br&amp;gt;&lt;br /&gt;
1. gamedata\scripts\'''death_manager.script'''&amp;lt;br&amp;gt;&lt;br /&gt;
2. gamedata\config\misc\'''death_items_by_communities.ltx'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''&lt;br /&gt;
В первом, в функцию '''init_drop_settings()'''&amp;lt;br&amp;gt;&lt;br /&gt;
 в строку '''local community_list = {'''&amp;lt;br&amp;gt;&lt;br /&gt;
 добавляем секцию &amp;lt;br&amp;gt;'''&amp;quot;trader&amp;quot;'''&amp;lt;br&amp;gt;&lt;br /&gt;
Выглядит это примерно так :&lt;br /&gt;
&amp;lt;code&amp;gt;function init_drop_settings()&lt;br /&gt;
	local community_list = {&amp;quot;trader&amp;quot;, &amp;quot;stalker&amp;quot;, &amp;quot;dolg&amp;quot;, &amp;quot;freedom&amp;quot;, &amp;quot;bandit&amp;quot;, &amp;quot;military&amp;quot;, &amp;quot;zombied&amp;quot;, &amp;quot;ecolog&amp;quot;, &amp;quot;killer&amp;quot;, &amp;quot;monolith&amp;quot;, &amp;quot;arena_enemy&amp;quot;, &amp;quot;actor_dolg&amp;quot; }&amp;lt;/code&amp;gt;&lt;br /&gt;
Во втором файле, в самом конце добавляем секцию &amp;lt;br&amp;gt;&lt;br /&gt;
'''[trader]:stalker'''&amp;lt;br&amp;gt;&lt;br /&gt;
здесь, после неё, можно не писать ничего, а можно вписать какие-нибудь секции итемов, если надо чтобы в трупе Бармена что-то появилось после смерти.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Авторы=&lt;br /&gt;
&lt;br /&gt;
Статья создана: Cjayho&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
P.S. Статью такую не нашел, но это весьма не плохая статья, поэтому перенёс с другой Wiki&lt;br /&gt;
&lt;br /&gt;
UPD: by Piter&lt;br /&gt;
[[Category:Trash]]&lt;/div&gt;</summary>
		<author><name>Akheront</name></author>	</entry>

	</feed>