Сейчас мы создадим удобный переносной спальный мешок.

gamedata\configs\misc
Файл items.ltx
Создаем новую сеецию:

Код:
[sleep_box]:booster
$spawn         = "food and drugs\sleep_box"
visual        = dynamics\devices\dev_pda\dev_pda.ogf
inv_name    	= sv_sleep_box_name
inv_name_short    = sv_sleep_box_name
description    	= sv_sleep_box_desc

inv_grid_width    = 2
inv_grid_height    = 2
inv_grid_x    	= 16
inv_grid_y    	= 25
cost        = 1000

use_sound    	= interface\inv_properties
can_trade    	= false
quest_item          = true
auto_attach    	= false
default_to_ruck    = false
sprint_allowed    = true
script_binding      = bind_physic_object.init

Иконку сами прописываем.

gamedata\configs\text\rus
В любом файле прописываем:

Код:
	<string id="sv_sleep_box_name">
    <text>Спальный мешок</text>
	</string>
	<string id="sv_sleep_box_desc">
    <text>Прочный непромокаемый спальный мешок.</text>
	</string>

gamedata\scripts
Файл bind_stalker.script

Находим функцию: function actor_binder:use_inventory_item(obj)
Там, где она заканчивается, прописываем перед последнем end:

Код:
    if obj~=nil then      
         mod_callbacks.on_use_item(obj)      
         end

В этой же папке создаем файл mod_callbacks.script
Заполняем его:

Код:
function on_use_item(sect)       
	local actor = db.actor
	local item_name = sect:section()

      if item_name=="sleep_box" then
	     ui_sleep_dialog.sleep()
         end
end

Теперь открываем файл ui_sleep_dialog.script
Находим функции и дополняем их этим:

disable_info("tutorial_sleep")
xr_effects.give_actor(db.actor,nil,{"sleep_box"})

Ставить перед end.

Функция 1: function sleep_dialog:OnButtonCancel()
Функция 2: function sleep_dialog:OnMessageBoxOk()
Функция 3: function dream_callback2()

!Кстати, вернуть ГГ предмет можно несколько другим способом (разница лишь в том, что не будет значка передачи предмета):

В _g скрипте добавляем в конце новую функцию:

Код:
function give_object_to_actor(obj,count)       
          if count==nil then count=1 end       
          for i=1, count do       
              alife():create(obj,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())       
          end       
end

И предмет теперь выдаем ГГ таким образом: give_object_to_actor("sleep_box")

Осталось добавить спальный мешок ГГ и пользоваться им.

Похожие статьи: GUI-элементы

Автор: mmihaill

Ссылки:

Модель спальника
Иконка спальника
Текстура спальника кидать в textures/item