CoP. Создание спального мешка — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

CoP. Создание спального мешка — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
м (Скрипты)
 
Строка 44: Строка 44:
 
<lua> get_console():execute("snd_volume_eff 0")  
 
<lua> get_console():execute("snd_volume_eff 0")  
 
  else</lua><br>пишем вот это:  
 
  else</lua><br>пишем вот это:  
<lua> if (spalnik) then spalnik.use_inventory_item(s_obj) end --Idler используем спальник?  
+
<lua> if s_obj and spalnik then spalnik.use_inventory_item(s_obj) end --Idler используем спальник?  
 
  end</lua><br>сохраняем…  
 
  end</lua><br>сохраняем…  
 
Теперь в папке '''gamedata\scripts''' создадим файл '''spalnik.script''' и в него впишем:  
 
Теперь в папке '''gamedata\scripts''' создадим файл '''spalnik.script''' и в него впишем:  
  
  <lua>-- функции АМК
+
  <lua>
function spawn_item_in_inv(spawn_item, npc)
+
if npc==nil then
+
npc=db.actor
+
end
+
return alife():create(spawn_item,
+
npc:position(),
+
npc:level_vertex_id(),
+
npc:game_vertex_id(),
+
npc:id())
+
end
+
 
+
-- функции спальника
+
function use(s_obj)
+
if not s_obj then return end
+
if (surge_manager.actor_in_cover()) then
+
ui_sleep_dialog.sleep()
+
give_info("sleep_active")
+
else
+
news_manager.send_tip(db.actor, game.translate_string("st_spalnik_nosleep"))
+
end
+
 
+
spawn_item_in_inv("spalnik")
+
end
+
 
+
 
  function use_inventory_item(s_obj)  
 
  function use_inventory_item(s_obj)  
if s_obj and s_obj.section_name and s_obj:section_name()=="spalnik" then  
+
  if s_obj:section_name()=="spalnik" then
use(s_obj)  
+
  if (surge_manager.actor_in_cover()) then
end  
+
    ui_sleep_dialog.sleep()
 +
    give_info("sleep_active")
 +
  else
 +
    news_manager.send_tip(db.actor, "st_spalnik_nosleep")
 +
  end
 +
  alife():create("spalnik", vector(), 0, 0, npc:id())
 +
  end  
 
  end  
 
  end  
 
</lua>
 
</lua>
Строка 107: Строка 89:
 
пишем:  
 
пишем:  
 
<code> spalnik \n</code>  
 
<code> spalnik \n</code>  
Сохраняем…  
+
Сохраняем…
 +
 
 
==Ссылки==
 
==Ссылки==
 
http://narod.ru/disk/11754345001/item_spalnik.ogf.html ----Модель спальника.
 
http://narod.ru/disk/11754345001/item_spalnik.ogf.html ----Модель спальника.

Текущая версия на 07:20, 1 декабря 2016

Всем привет… В этой статье я расскажу вам как создать спальный мешок в ЗП

Теория

Многие люди делая спальник задавались вопросом: "Почему ГГ съедает спальник?". Ответ прост Чтобы сделать спальник нужно к нему скрипт прикрутить. Идея скрипта проста и состоит она в том что: Когда ГГ использует спальник чтобы его не съесть вызываем диалог сна и по окончанию спавним спальник в инвентарь ГГ.

Конфиги

Для начала заходим в файл gamedata\configs\misc\items.ltx
И в самый конец добавляем вот это:

 ; Спальник 
 [spalnik]:identity_immunities 
 discovery_dependency = 
 $spawn = "food and drugs\antirad" 
 $prefetch = 32 
 class = S_FOOD 
 cform = skeleton 
 ; eatable item 
 eat_health = 0 
 eat_satiety = 0 
 eat_power = 0 
 eat_radiation = 0 
 eat_alcohol = 0 
 wounds_heal_perc = 0 
 eat_portions_num = 1 
 ; food item 
 animation_slot = 4 
 ;hud item 
 hud = wpn_vodka_hud 
 
 visual = dynamics\workshop_room\banka_kraski_1.ogf  ;ссылка на 3д модель спальника
 description = enc_spalnik ;описание configs\text\rus
 inv_name = spalnik  ;Название configs\text\rus
 inv_name_short = spalnik ;Название configs\text\rus
 inv_weight = 1 
 inv_grid_width = 2 
 inv_grid_height = 2 
 inv_grid_x = 14 
 inv_grid_y = 23 
 cost = 2200 ;цена
 

Сохраняем…

Скрипты

Теперь идём в файл bind_stalker.script и после строчек

 get_console():execute("snd_volume_eff 0") 
 else

пишем вот это:
 if s_obj and spalnik then spalnik.use_inventory_item(s_obj) end --Idler используем спальник? 
 end

сохраняем…

Теперь в папке gamedata\scripts создадим файл spalnik.script и в него впишем:

 
 function use_inventory_item(s_obj) 
  if s_obj:section_name()=="spalnik" then
   if (surge_manager.actor_in_cover()) then
     ui_sleep_dialog.sleep() 
     give_info("sleep_active") 
   else 
     news_manager.send_tip(db.actor, "st_spalnik_nosleep") 
   end
   alife():create("spalnik", vector(), 0, 0, npc:id())
  end 
 end 
 

все можно сохранять... Теперь идем в файл gamadata\configs\text\rus\st_items_equipment.xml
И в конце перед строчкой вписываем вот это:

 
 	<string id="spalnik">
		<text>Спальный мешок</text>
	</string>
	<string id="spalnik_s">
		<text>Спальный мешок</text>
	</string>
	<string id="enc_spalnik">
		<text>Походный спальный мешок. Пожалуй, самый удобный способ переночевать в Зоне. Но от радиации не спасёт, поэтому для ночевки нужно искать места по-укромнее. Например такие, где можно переждать выброс.</text>
	</string>
 

Сохраняем… Теперь идем в туже папку в файл ui_st_screen.xml и в конце перед строчкой пишем вот это:

 
	<string id="st_spalnik_nosleep">
		<text>В этом месте не заснуть. Нужно найти более надежное укрытие, там где можно переждать выброс.</text>
	</string> 
 

Теперь идем в файл: Gamedata\configs\gamepley\character_desc_general.xml и там после строчки:

stalker_outfit \n

пишем:

spalnik \n

Сохраняем…

Ссылки

http://narod.ru/disk/11754345001/item_spalnik.ogf.html ----Модель спальника.
http://narod.ru/disk/11756013001/c%D0%BF%D0%B0%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA.dds.html ----Иконка спальника.
http://narod.ru/disk/11787986001/item_meshok1.dds.html ----Текстура спальника кидать в textures\item

Все можно заходить в игру и проверять…Спальный мешок появится у вас в начале новой игры!!!


(Статья от ак101) Статья доделана
Mesnik`ом

Другие места
LANGUAGE