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

Создание тайников — различия между версиями

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

Перейти к: навигация, поиск
(Новая страница: «Вы игре часто можно задаться вопросом как создать, личный ящик, тайник в виде трубы или воо...»)
 
 
(не показаны 14 промежуточные версии 5 участников)
Строка 1: Строка 1:
Вы игре часто можно задаться вопросом как создать, личный ящик, тайник в виде трубы или вообще тайник экстровагантного внешнего вида. Однажды я как конфигер изучал в misc файл devices.ltx и наткнулся на следуещее описание:
+
==Пролог==
 +
В игре часто можно задаться вопросом: как создать личный ящик, тайник в виде трубы или вообще тайник экстравагантного внешнего вида. Вот алгоритм для ЗП. Однажды я как конфигер изучал в папке misc файл devices.ltx и наткнулся на следующее описание:
 +
 
 +
==Конфиги==
 
  [inventory_box]
 
  [inventory_box]
  GroupControlSection = spawn_group
+
  GroupControlSection = spawn_group - ''Для ЛевелЭдитора''
  discovery_dependency =
+
  discovery_dependency = - ''Параметр ограничения доступа к личному ящику''
  $spawn = "devices\inventory box"
+
  $spawn = "devices\inventory box" - ''Спаун-секция в ол спаун (маловажно)''
  class = S_INVBOX
+
  class = S_INVBOX - ''Класс объекта''
  cform = skeleton
+
  cform = skeleton  
  visual = dynamics\equipment_cache\equipment_box_01_case.ogf
+
  visual = dynamics\equipment_cache\equipment_box_01_case.ogf - ''Внешний вид из meshes''
  script_binding      = bind_physic_object.init
+
  script_binding      = bind_physic_object.init - ''Механизм спауна''
Тогда я с помощью мода «Повелитель Зоны» (как не важно)...
+
 
 +
Как задаётся discovery_dependency я не изучал. Поэтому его можно выкинуть, создав ящик со свободным доступом.
 +
Тогда я с помощью мода «Повелитель Зоны» (как не важно) заспаунил подобный объект. Появилось место, там нечего нет (мешь пуста), в котором появлась надпись «Осмотреть (F)» и при нажатии соотвествующей клавиши появлялась возможность ознокомиться с его содержимым (окно обыска).
 +
Я использовал следущее общённое рабочее описание:
 +
 +
[''произвольное название нашего тайника на английском'']:inventory_box
 +
visual = dynamics\devices\dev_rukzak\dev_rukzak.ogf ;В данном случае модель рюкзака.
 +
story_id            = стори айди
 +
 
 +
==Спаун тайника и предметов в него==
 +
Для того чтобы заспаунить тайник нужно:
 +
Создать скрипт например: personal_treasure.script в папке gamedata\scripts
 +
 
 +
В него добавить:
 +
<lua>
 +
function spawn_treasure()
 +
alife():create("имя_тайника",vector():set(-140.25692749023,-29.113412857056,-368.48748779297),114039,1029) -- Функция спауна самого тайника, где "(-140.25692749023,-29.113412857056,-368.48748779297),114039,1029)" - есть координаты спауна
 +
end
 +
 
 +
 
 +
 
 +
local spawn_item1 = { "Имя предмета который спауним(если несколько то через запятую)"} --таблица предметов для спауна
 +
 
 +
local function spawn_item_to_box(items_table, count, inv_box_story_id)
 +
local inv_box = alife():object(get_story_object_id(inv_box_story_id))
 +
for i = 1,count do
 +
alife():create(items_table[math.random(#items_table)],
 +
inv_box.position,
 +
inv_box.m_level_vertex_id,
 +
inv_box.m_game_vertex_id,
 +
inv_box.id)
 +
end
 +
end
 +
 
 +
function spawn_item_to_treasure(actor, obj, p)
 +
spawn_item_to_box(spawn_item1, 1, "Стори айди тайника")
 +
end
 +
</lua>
 +
Сохраняем...
 +
 
 +
Далле нужно добавить функции спауна например в диалог, подробно обьяснять небуду так как можно посмотреть статью об этом. Вот строки которые нужно добавить в диалог:
 +
        <action>personal_treasure.spawn_treasure</action>
 +
        <action>personal_treasure.spawn_item_to_treasure</action>
 +
Все...
 +
 
 +
== На остаток ==
 +
Так реально можно заспаунить тайник, но у него есть два минуса:
 +
<br />''1. Нет значка на карте(Можно исправить(полазте по этому сайте полюбом найдете как))''
 +
<br />''2. Незащитывается в "Найденые тайники" в ПДА(Тоже можно исправить)''
 +
 
 +
Использую разные меши я создал рабочии тайники с внешним видом трупа пседогиганта, балона, бочки, бидона, холодильника, газовой плиты и даже БТР и вертолёта. Прописать описание нового тайника лучше всего в extracontent.ltx создан для добавления новых объектов.
 +
<br />Переработал: Mesnik
 +
Функция спауна предметов в тайник Пысовская. Переименовал для удобства
 +
Тутор сделал на основе инфы с моего мода.
 +
 
 +
[[Category:Конфигурационные файлы]]

Текущая версия на 00:17, 5 января 2017

Пролог

В игре часто можно задаться вопросом: как создать личный ящик, тайник в виде трубы или вообще тайник экстравагантного внешнего вида. Вот алгоритм для ЗП. Однажды я как конфигер изучал в папке misc файл devices.ltx и наткнулся на следующее описание:

Конфиги

[inventory_box]
GroupControlSection	= spawn_group - Для ЛевелЭдитора
discovery_dependency = - Параметр ограничения доступа к личному ящику
$spawn 				= "devices\inventory box" - Спаун-секция в ол спаун (маловажно)
class				= S_INVBOX - Класс объекта
cform				= skeleton 
visual				= dynamics\equipment_cache\equipment_box_01_case.ogf - Внешний вид из meshes
script_binding      = bind_physic_object.init - Механизм спауна

Как задаётся discovery_dependency я не изучал. Поэтому его можно выкинуть, создав ящик со свободным доступом. Тогда я с помощью мода «Повелитель Зоны» (как не важно) заспаунил подобный объект. Появилось место, там нечего нет (мешь пуста), в котором появлась надпись «Осмотреть (F)» и при нажатии соотвествующей клавиши появлялась возможность ознокомиться с его содержимым (окно обыска). Я использовал следущее общённое рабочее описание:

[произвольное название нашего тайника на английском]:inventory_box
visual				= dynamics\devices\dev_rukzak\dev_rukzak.ogf ;В данном случае модель рюкзака.

story_id = стори айди

Спаун тайника и предметов в него

Для того чтобы заспаунить тайник нужно: Создать скрипт например: personal_treasure.script в папке gamedata\scripts

В него добавить:

 
function spawn_treasure()
alife():create("имя_тайника",vector():set(-140.25692749023,-29.113412857056,-368.48748779297),114039,1029) -- Функция спауна самого тайника, где "(-140.25692749023,-29.113412857056,-368.48748779297),114039,1029)" - есть координаты спауна
end
 
 
 
local spawn_item1 		= {	"Имя предмета который спауним(если несколько то через запятую)"} --таблица предметов для спауна
 
local function spawn_item_to_box(items_table, count, inv_box_story_id)
	local inv_box = alife():object(get_story_object_id(inv_box_story_id))
	for i = 1,count do
		alife():create(items_table[math.random(#items_table)],
						inv_box.position,
						inv_box.m_level_vertex_id,
						inv_box.m_game_vertex_id,
						inv_box.id)
	end
end
 
function spawn_item_to_treasure(actor, obj, p)
spawn_item_to_box(spawn_item1, 1, "Стори айди тайника")
end
 

Сохраняем...

Далле нужно добавить функции спауна например в диалог, подробно обьяснять небуду так как можно посмотреть статью об этом. Вот строки которые нужно добавить в диалог:

       <action>personal_treasure.spawn_treasure</action>
       <action>personal_treasure.spawn_item_to_treasure</action>

Все...

На остаток

Так реально можно заспаунить тайник, но у него есть два минуса:
1. Нет значка на карте(Можно исправить(полазте по этому сайте полюбом найдете как))
2. Незащитывается в "Найденые тайники" в ПДА(Тоже можно исправить)

Использую разные меши я создал рабочии тайники с внешним видом трупа пседогиганта, балона, бочки, бидона, холодильника, газовой плиты и даже БТР и вертолёта. Прописать описание нового тайника лучше всего в extracontent.ltx создан для добавления новых объектов.
Переработал: Mesnik Функция спауна предметов в тайник Пысовская. Переименовал для удобства Тутор сделал на основе инфы с моего мода.

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