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

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%82_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BB%D0%B5%D0%BA%D1%82%D0%BE%D0%B2</id>
		<title>SoC. Создание ремонт комплектов</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=SoC._%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%82_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BB%D0%B5%D0%BA%D1%82%D0%BE%D0%B2"/>
				<updated>2012-03-25T14:24:08Z</updated>
		
		<summary type="html">&lt;p&gt;80.239.242.174: /* Небольшая заметка */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Создание ремонт комплекта===&lt;br /&gt;
Я опишу пример создания ремонт комплекта для костюмов, а для оружия в конце статьи сделаю пару заметок. Дело в том, что различия в создании ремонт комплектов почти нет.&lt;br /&gt;
 &lt;br /&gt;
1. Для начала нам нужно создать сам ремонт комплект, то есть предмет, а уже потом вешать на него функцию при использование. Для этого в config\misc\items.ltx в конец добавляем конфиг нашего предмета:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;[repair_kit_outfit]:identity_immunities&lt;br /&gt;
GroupControlSection	= spawn_group&lt;br /&gt;
discovery_dependency    =&lt;br /&gt;
$spawn 			= &amp;quot;food and drugs\repair kit outfit&amp;quot;&lt;br /&gt;
$prefetch 		= 32&lt;br /&gt;
class			= II_ANTIR ;класс не трогаем!&lt;br /&gt;
cform                   = skeleton&lt;br /&gt;
visual                  = equipments\item_merger.ogf ;модель&lt;br /&gt;
description		= enc_equipment_repair_kit_outfit ;ссылка на описание в config\text\rus\....xml&lt;br /&gt;
&lt;br /&gt;
inv_name		= repair_kit_outfit_name ;ссылка на название в config\text\rus\....xml&lt;br /&gt;
inv_name_short		= repair_kit_outfit_name ;тоже самое, что и inv_name&lt;br /&gt;
inv_weight		= 6.0 ;вес&lt;br /&gt;
&lt;br /&gt;
inv_grid_width		= 2 ;ширина иконки&lt;br /&gt;
inv_grid_height		= 1 ;высота иконки&lt;br /&gt;
inv_grid_x		= 8 ;координата x иконки&lt;br /&gt;
inv_grid_y		= 18 ;координата y иконки&lt;br /&gt;
cost			= 10000 ;цена&lt;br /&gt;
;всё ниже написанное не трогаем, оно нам и не нужно&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;
animation_slot = 4&lt;br /&gt;
hud = wpn_vodka_hud&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. Теперь добавим название и описание. Для этого в файле config\text\rus\string_table_enc_equipment.xml в конец между &amp;lt;/string&amp;gt; и &amp;lt;/string_table&amp;gt; добавляем строки по аналогии с уже написсанными: &lt;br /&gt;
       &amp;lt;pre&amp;gt;&amp;lt;string id=&amp;quot;repair_kit_outfit_name&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;enc_equipment_repair_kit_outfit&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;text&amp;gt;Новинка от Вани Болта - ремонт комплект ДПК для быстрой и эффективной починки костюмов. При его создании были учтены все недочёты и, следовательно, удалены. Благодаря улучшенным инструментам и деталям, а также облегченному весу весьма ценен. С его помощью можно увеличить состояние костюма до 100%, если он повреждён не больше 30%. Незаменимая вещь во время вылазки.&amp;lt;/text&amp;gt;&lt;br /&gt;
    &amp;lt;/string&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Отлично, с предметом закончили. Теперь приступим к самому главному - скриптам. &lt;br /&gt;
===Работа со скриптами===&lt;br /&gt;
1.Вешаем функцию починки при использовании нашего ремонт комплекта. &lt;br /&gt;
Для этого в файле '''scripts\bind_stalker.script''' &lt;br /&gt;
находим функцию:&lt;br /&gt;
&lt;br /&gt;
function actor_binder:reinit() и после строки &lt;br /&gt;
&lt;br /&gt;
self.object:set_callback(callback.take_item_from_box, self.take_item_from_box, self) пишем: &lt;br /&gt;
&lt;br /&gt;
self.object:set_callback(callback.use_object, self.repair_outfit_start, self)&lt;br /&gt;
&lt;br /&gt;
Теперь в папке scripts создаёте свой скриптовой фаил ваше_название_скрипта.script. Но! Название должно быть написано на английском языке и вместо пробелов должен стоять знак &amp;quot;_&amp;quot;. Опять открываем bind_stalker.script и в самый конец добавляем эту функцию: &lt;br /&gt;
&amp;lt;lua&amp;gt;function actor_binder:repair_outfit_start(obj, who)&lt;br /&gt;
    if obj then &lt;br /&gt;
        if obj:section() == &amp;quot;repair_kit_outfit&amp;quot; then --здесь указываем предмет, при использование которого будет срабатывать функция ниже&lt;br /&gt;
        ваше_название_скрипта.repair_outfit() --здесь указываем ссылку на функцию. Сначала скрипт, в котором она написана, потом название самой функции&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
end&amp;lt;/lua&amp;gt;&lt;br /&gt;
2. Добавляем саму функцию ремонта. &lt;br /&gt;
Для этого в файле ваше_название_скрипта.script пишем: &lt;br /&gt;
&amp;lt;lua&amp;gt; -- Ремонт комплект для костюмов&lt;br /&gt;
function repair_outfit()&lt;br /&gt;
local item_s6 = db.actor:item_in_slot(6) --объявляем переменную (item_s6)&lt;br /&gt;
    if item_s6 ~= nil and item_s6:condition() &amp;gt;=0.30 and item_s6:condition() ~=1 then --когда костюм можно чинить (состояние больше или равно 30%)&lt;br /&gt;
        item_s6:set_condition(1)&lt;br /&gt;
        local snd_obj = xr_sound.get_safe_sound_object([[interface\inv_detach_addon]])&lt;br /&gt;
        snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)&lt;br /&gt;
        local news_text = &amp;quot;%c[255,160,160,160]Ремонт комплект:\\n%c[255,0,255,0]Ремонт костюма завершен.&amp;quot;&lt;br /&gt;
        db.actor:give_game_news(news_text, &amp;quot;ui\\ui_iconsTotal&amp;quot;, Frect():set(83,470,83,47), 1000, 5000)&lt;br /&gt;
    elseif item_s6 == nil then --когда костюма нет &lt;br /&gt;
        local news_text = &amp;quot;%c[255,160,160,160]Ремонт комплект:\\n%c[255,255,0,0]Ремонт невозможен: нужно одеть коcтюм.&amp;quot;&lt;br /&gt;
        db.actor:give_game_news(news_text, &amp;quot;ui\\ui_iconsTotal&amp;quot;, Frect():set(83,470,83,47), 1000, 5000)&lt;br /&gt;
        alife():create(&amp;quot;repair_kit_outfit&amp;quot;, db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id())&lt;br /&gt;
    elseif item_s6:condition() &amp;lt;0.30 then --когда костюм нельзя чинить (состояние меньше 30%)&lt;br /&gt;
        local news_text = &amp;quot;%c[255,160,160,160]Ремонт комплект:\\n%c[255,255,0,0]Ремонт невозможен: костюм слишком сильно повреждён.&amp;quot;&lt;br /&gt;
        db.actor:give_game_news(news_text, &amp;quot;ui\\ui_iconsTotal&amp;quot;, Frect():set(83,470,83,47), 1000, 5000)&lt;br /&gt;
        alife():create(&amp;quot;repair_kit_outfit&amp;quot;, db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id())&lt;br /&gt;
    elseif item_s6:condition() ==1 then --когда костюм в отличном состояние&lt;br /&gt;
        local news_text = &amp;quot;%c[255,160,160,160]Ремонт комплект:\\n%c[255,255,0,0]Ремонт невозможен: %c[255,0,255,0]костюм в отличном состояние.&amp;quot;&lt;br /&gt;
        db.actor:give_game_news(news_text, &amp;quot;ui\\ui_iconsTotal&amp;quot;, Frect():set(83,470,83,47), 1000, 5000)&lt;br /&gt;
        alife():create(&amp;quot;repair_kit_outfit&amp;quot;, db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id())&lt;br /&gt;
    end&lt;br /&gt;
end&amp;lt;/lua&amp;gt;&lt;br /&gt;
Всё! Теперь заходим в игру и наслаждаемся. &lt;br /&gt;
===Небольшая заметка===&lt;br /&gt;
1. Чтобы сделать ремонт комплект для оружия проделываем тоже самое, только переименовываем всё вместо outfit на weapon и в функцие починки ставим слот 1 или 2 (оружейные слота) вместо 6 (слот костюмов).&lt;br /&gt;
Ещё нужно заменить переменную item_s6 например на item_s1 или item_s2.&lt;br /&gt;
&lt;br /&gt;
2. Число 0.30 - минимальное состояние костюма, следовательно его можно менять на любое вам угодное.&lt;br /&gt;
Простите за такое оформление, это моя вторая статья. В будущем, если будет больше свободного времени, постораюсь расписать все моменты подробно. Автор статьи: Бага.&lt;br /&gt;
&lt;br /&gt;
[[Категория:Скрипты]]&lt;br /&gt;
Данный метод создания ремонт комплектов не работает! (проверено)&lt;/div&gt;</summary>
		<author><name>80.239.242.174</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=DialogEditor</id>
		<title>DialogEditor</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=DialogEditor"/>
				<updated>2011-03-29T17:59:21Z</updated>
		
		<summary type="html">&lt;p&gt;80.239.242.174: стилевые правки&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Подготовка к работе DialogEditor ===&lt;br /&gt;
&lt;br /&gt;
1. Запустить DialogEditor (кликнуть на !DialogEditor.cmd что находится в X-Ray CoP SDK\editors\)&amp;lt;br /&amp;gt;&lt;br /&gt;
2. Открыть таблицу с дискрипшенами (нажать на клавишу Open STRING TABLE XML, выбрать файл из configs\text\rus\)&amp;lt;br /&amp;gt;&lt;br /&gt;
3. Открыть таблицу с структурой диалога (нажать на клавишу Open DIALOG description XML, выбрать файл с диалогом из configs\gameplay\ типа dialogs_локация.xml)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
!Обратите внимание на то что кнопкой Open DIALOG description XML открывают не дискрипшены, а именно сами диалоги. Что странно (учитывая название кнопки), можно легко перепутать... Хотя если сделать наоборот - открыть кнопкой Open DIALOG description XML файл с дискрипшенами, вы всеравно нечего не сможете сделать (будет вылазить ошибка: Wrong Strings XML file).&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Содержимое xml-заготовок ===&lt;br /&gt;
&lt;br /&gt;
'''Файл с дискрипшенами''' (скажем st_dialogs_mod.xml)&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;windows-1251&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;string_table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/string_table&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
После того как диалог будет готов и записан в xml-файл, поместить его в configs\text\rus\&lt;br /&gt;
&lt;br /&gt;
'''Файл с структурой диалога''' (скажем dialogs_mod.xml)&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;windows-1251&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;game_dialogs&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/game_dialogs&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
После того как диалог будет готов и записан в xml-файл, поместить его в configs\gameplay\ и зарегать в configs\system.ltx&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[dialogs]&lt;br /&gt;
files = dialogs_mod, dialogs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Создание диалога в DialogEditor ===&lt;br /&gt;
&lt;br /&gt;
Итак, открыли оба файла. Все поля стали доступными. Создаём диалог.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. Для начала создаём новый диалог: слева вверху в поле между кнопками Add и Del вводим id нашего диалога, к примеру mod_dialog_01. Нажимаем Add слева от поля ввода. Видим что у нас в списке диалогов появился наш mod_dialog_01.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
!Вот ещё один нюанс: если попробовать открыть пустые dialogs2.xml и string_table2.xml и попробовать добавить туда свой диалог, DialogEditor сразу вырубится. Почему не знаю.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Итак создали мы диалог. Теперь нужно написать текст: выделяем курсором свой диалог в списке слева вверху, видим что в нижнем окне слева появился синий квадратик и цифрой 0 - это стартовый текст диалога (принадлежит он ГГ - синие квадратики - это диалоги ГГ, зелёные - это диалоги npc).&amp;lt;br /&amp;gt;&lt;br /&gt;
Выделяем диалог ГГ курсором, справа внизу в поле Content заменяем текст default text на свой: &amp;quot;Привет! Как жизнь?&amp;quot;.&amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь добавляем ответ npc: слева снизу в поле пишем 1 и нажимаем кнопку Add. Появился зелёный квадратик с цифрой 1 - это ответ npc на диалог ГГ.&amp;lt;br /&amp;gt;&lt;br /&gt;
Выделяем зелёный квадратик с цифрой 1 и в поле Content заменяем текст default text на ответ npc: &amp;quot;Да хреново, вчера водки перепил.&amp;quot; ну и так далее... Основы работы с DialogEditor я кажется разжевал.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Сохранение диалога: сверху правее находим кнопку save both, жмём. Всё проверяем наши файлы, в одном появился наш диалог:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;dialog id=&amp;quot;mod_dialog_01&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
            &amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;text&amp;gt;mod_dialog_01_0&amp;lt;/text&amp;gt;&lt;br /&gt;
                &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
            &amp;lt;/phrase&amp;gt;&lt;br /&gt;
            &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;text&amp;gt;mod_dialog_01_1&amp;lt;/text&amp;gt;&lt;br /&gt;
            &amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
    &amp;lt;/dialog&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Во втором дискрипшены диалога:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;string id=&amp;quot;mod_dialog_01_0&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;mod_dialog_01_1&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;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Создание одноразового диалога ===&lt;br /&gt;
&lt;br /&gt;
Итак, как сделать диалог одноразовым? Реализуется это посредством инфопорций. Назовём её скажем mod_dialog_01_done.&amp;lt;br /&amp;gt;&lt;br /&gt;
Для начала эту инфопорцию нужно добавить в игру: открыть любой список с инфопорциями (скажем configs\gameplay\info_portions.xml) и добавить строчку с нашей инфопорцией:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 &amp;lt;info_portion id=&amp;quot;mod_dialog_01_done&amp;quot;&amp;gt;&amp;lt;/info_portion&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Далее, выделяем в DialogEditor наш диалог mod_dialog_01 (в окне слева вверху).&amp;lt;br /&amp;gt;&lt;br /&gt;
Кликаем на него дважды, должно открыться окошко Dialog properties. Находим окошко dont_has_info, жмём кнопку &amp;lt;-Edit.&amp;lt;br /&amp;gt;&lt;br /&gt;
Открылось ещё одно окошко List Editor, справа в поле пишем mod_dialog_01_done, нажимаем &amp;lt;-Add.&amp;lt;br /&amp;gt;&lt;br /&gt;
В окне dont_has_info, появилась наша инфопорция mod_dialog_01_done. Жмём Ok.&amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь наш диалог будет доступен, при отсутствии инфопорции mod_dialog_01_done.&amp;lt;br /&amp;gt;&lt;br /&gt;
Теперь нужно сделать так, чтобы инфопорция mod_dialog_01_done, выдавалась после завершения диалога.&amp;lt;br /&amp;gt;&lt;br /&gt;
Переключаем наше внимание на окно слева внизу. Выделяем последний квадратик в списке (в нашем варианте: зелёный квадратик с цифрой 1).&amp;lt;br /&amp;gt;&lt;br /&gt;
Немного выше центра окна DialogEditor находим окно, сверху которого написано give_info. Левее этого окна жмём на кнопку Edit-&amp;gt; и добавляем инфопорцию mod_dialog_01_done ''так же, как мы делали в окне dont_has_info''.&amp;lt;br /&amp;gt;&lt;br /&gt;
Всё, записываем изменения - жмём save both.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файле dialogs_mod.xml должно появится такое содержимое:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
    &amp;lt;dialog id=&amp;quot;mod_dialog_01&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;dont_has_info&amp;gt;mod_dialog_01_done&amp;lt;/dont_has_info&amp;gt;&lt;br /&gt;
        &amp;lt;phrase_list&amp;gt;&lt;br /&gt;
            &amp;lt;phrase id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;text&amp;gt;mod_dialog_01_1&amp;lt;/text&amp;gt;&lt;br /&gt;
                &amp;lt;give_info&amp;gt;mod_dialog_01_done&amp;lt;/give_info&amp;gt;&lt;br /&gt;
            &amp;lt;/phrase&amp;gt;&lt;br /&gt;
            &amp;lt;phrase id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;text&amp;gt;mod_dialog_01_0&amp;lt;/text&amp;gt;&lt;br /&gt;
                &amp;lt;next&amp;gt;1&amp;lt;/next&amp;gt;&lt;br /&gt;
            &amp;lt;/phrase&amp;gt;&lt;br /&gt;
        &amp;lt;/phrase_list&amp;gt;&lt;br /&gt;
    &amp;lt;/dialog&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Автор [[Участник:THE_ATLAS|THE_ATLAS]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:SDK_COP]]&lt;/div&gt;</summary>
		<author><name>80.239.242.174</name></author>	</entry>

	</feed>