Jump to content

Добро пожаловать к нам на сайт! Про Ваш статус и права можно прочитать в Этой теме

Для просмотра картинок и скачивания файлов с форума - пройдите регистрацию!   Проблемы с регистрацией - вам сюда



Последние сообщения тем


Информация Посетить тему поддержки

  • Дабавлена: 06 Sep 2014 21:44
  • Просмотров: 4579
 


* * * * *
0 Рейтинг

Создание тайников в ТЧ

Posted by RUS_D 06 Sep 2014 21:44

Создание тайников.

Метод 1 (через all.spawn):


1) В алл спавне открываем alife_название локации на которой будем делать тайник.ltx
Идем в самый низ и пишем туда такую конструкцию:

 


[ХХХ]
; cse_abstract properties
section_name = inventory_box      
name = bla_bla_bla_box
position = XXX
direction = 0,0,0      

; cse_alife_object properties
game_vertex_id = XXX
distance = 0
level_vertex_id = XXX
object_flags = 0xffffff3b
custom_data = <<END

[logic]
cfg = scripts\treasure_inventory_box.ltx      
END
story_id = XXXX

; cse_visual properties
visual_name = physics\equipment_cache\equipment_instrument_case_01_case

ГДЕ:
[ХХХ] - номер секции (никогда не повторяется!). В конце смотрим последнюю конструкцию и номер ее секции, к этому номеру прибавляем пару десятков (чтобы уж наверняка) и записываем его в фигурные скобки. Например: у последней секции имеем номер [666]. Прибавляем к нему пару десятков и пишем уже к себе. Вместо [ХХХ] записываем [700]

section_name - название секции. Не трогаем.

name - Задаем какой хотим (я задал bla_bla_bla_box). Никогда в названии не должно быть пробела. Вместо него юзаем знак "_".

position - Координаты спавна тайника. записываются в формате X,Y,Z : -44.825649,-10.059822,-74.628242 (это пример, пишем свои координаты, которые снимаем в нужной точке).

direction - Направление обзора. Тут оно не важно, поэтому ставим нули.

game_vertex_id - Вертекс в игре. Узнать его можно во время снятия координат. Как правило пишется сразу после X,Y,Z.

level_vertex_id - Вертекс на уровне. Узнать его можно также, как и с гейм вертексом.
ПРИМЕР: -44.825649,-10.059822,-74.628242,234287,77
где: -44.825649,-10.059822,-74.628242 --- это координаты (X,Y,Z), 234287 --- это левел вертекс, 77 --- гейм вертекс.

cfg - Это ссылка на логику, ничего не меняем.

story_id - Уникальный айди обьекта, о том как его добавить расскажу чуть ниже. Вместо моих иксов пишем например число 19123.

visual_name - Визуал тайника (модель). Можно задавать не только стандартную, но и например модель ящика, бревна, и т.д

Когда данную конструкцию вставили, заполнили все пункты которым я написал описание, можно запаковывать обратно алл спавн.

2) Добавим наш айди тайника:
В gamedata\config\game_story_ids.ltx в самом низу, после строчки: 5480 = "ros_secret_0025". Так как в алл спавне мы задали сид равный 19123 (а так можно любой, но только не тот который есть уже в игре), то мы пишем следующую строчку:

 


19123 = "bla_bla_bla"

ГДЕ:
19123 - это айди обьекта, указанный в алл спавне.

"bla_bla_bla" - название тайника в game_story_ids.ltx
Название обязательно должно совпадать в game_story_ids.ltx и treasure_manager.ltx

3) Теперь наполнение тайника:
В gamedata\config\misc\treasure_manager.ltx пишем следующие строчки:

 


[bla_bla_bla]      
target = 19123
name = bla_bla_bla_name      
description = bla_bla_bla_descr      
items = wpn_gauss, 1, medkit, 10
condlist = {=npc_rank(experienced)} 9
community = stalker

ГДЕ:
[bla_bla_bla] - конфигурационное имя тайника (такое же как и в game_story_ids.ltx)

target - СИД (который мы писали в алл спавне и регистрировали в game_story_ids.ltx)

name - имя тайника которое будет выводится в игре.

description - описание тайника (также выводится в игре).

items - наполнение тайника. (я прописал 1 винтовку гаусса и 10 аптечек)

condlist - кондишн выпадения тайника. Т.е условие при котором тайник выпадет для ГГ.

community - группировка, при обыске мертвых бойцов которой, тайник может выпасть (влияет condlist)

Далее в этом же файле находим строчки (вверху файла): ros_secret_0025. И следом за этой строчкой пишем наш тайник: bla_bla_bla.

4) Осталось прописать имя и описание для тайника, которое будет выводится в игре.
Идем в gamedata\config\text\rus\stable_treasure_manager.xml и пишем внизу, но ДО закрывающего тега </string_table> следующие строчки:

 


<string id="bla_bla_bla_descr">
<text>текст с описанием тайника</text>
</string>
<string id="bla_bla_bla_name">
<text>название тайника</text>
</string>

ГДЕ:

<string id="bla_bla_bla_descr"> - это описание тайника, которое мы задавали в treasure_manager.ltx (description = bla_bla_bla_descr)

<string id="bla_bla_bla_name"> - это имя тайника, которое мы также задавали в treasure_manager.ltx (name = bla_bla_bla_name)

Все. Заходим в игру и любуемся своим созданным тайником (не забываем про условие выпадения).


Метод 2 (с помощью скрипта):

1) Создаем в папке \gamedata\scripts наш файл с функцией спавна тайника (я назвал файл spawn.script)
Пишем туда простую до неприличия функцию:

 


function spawn_box()     
local a = vector()     
a.x = -247.674
a.y = -19.526
a.z = -128.201
alife():create("box",a,11044,8)
end

ГДЕ:

spawn_box - имя нашей функции (можно написать любое).

a.x, a.y, a.z - координаты.

"box" - имя нашего тайника (используется для спавна).

a - обьявленная ранее переменная координат (ее можно и не писать, а перечислить просто координаты через ",").

11044 - левел вертекс

8 - гейм вертекс.

2) В папке \gamedata\config\scripts создаем файл box.ltx .
Записываем в него список предметов, которые будут спавниться:

 

[spawn]
wpn_vintorez = 1
ammo_m209 = 10
medkit = 10
af_gravi = 1

3) Открываем \gamedata\config\creatures\spawn_sections.ltx .
Пишем внизу:

 

[box]:inv_box
visual = equipments\item_rukzak
radius = 1
custom_data = scripts\box.ltx

ГДЕ:

[box] - имя тайника (то же самое, что и в функции спавна).

inv_box - параметры нашего тайника (визуал, класс и т.д, который задается в devices.ltx).

custom_data - ссылка на файл со списком спавнящихся предметов.

4) Открываем \gamedata\config\misc\devices.ltx .
Пишем внизу:

 

[inv_box]
GroupControlSection    = spawn_group
discovery_dependency   =
$spawn                 = "devices\inventory box"
class                  = O_INVBOX
cform                  = skeleton
visual                 = physics\box\expl_dinamit.ogf
script_binding         = bind_physic_object.init

ГДЕ:

inv_box - тоже имя, что и задавалось после [box] в spawn_sections.ltx

5) Осталось лишь как-то вызвать наш спавн. Вызовем после совершения определенного действия в игре.
Открываем \gamedata\config\gameplay\info_l01escape.xml
Находим там такие строчки:

 

<!-- труп у аномалии -->
     <info_portion id="esc_tutorial_dead_novice">
      <article>tutorial_moving_anomaly</article>     
     </info_portion>

И ставим наш экшен на вызов функции:

 

<action>spawn.spawn_box</action>

Получится так:

 

<!-- труп у аномалии -->
     <info_portion id="esc_tutorial_dead_novice">
      <article>tutorial_moving_anomaly</article>     
                    <action>spawn.spawn_box</action>
     </info_portion>

ГДЕ:

spawn - это название файла с функцией.

spawn_box - название функции (в этом же файле).

Таким образом, после того, как мы обыщем труп у тоннеля с Электрами, произойдет спавн нашего тайника в заданных выше координатах.
d276ec53ce4bc9ccf889dd491c25e73c4e241111
 


Читать!

Вот программа: http://webfile.ru/5891368
Распаковываем и ложим в папку с нашим алл спавном. Туда же ложим game.graph из нашей игры. С названиями батников думаю понятно wink.gif
Добавляем все что нужно в алайф_название локации. Затем открываем папку stkutils и в ней находим файл scan.pm, открываем его (нотпад открывает спокойно) и пишем туда те секции, которые мы добавляли.
ПРИМЕР: писал section_name = inv_box в алайф_название локации.
Открываю файл scan.pm, после тега #common пишу следующее:

 


'inv_box' => 'S_INVBOX',

Сохраняем и компилируем спавн файл. Все без ошибок.
Не забываем про классы!!!
S_INVBOX - для тайников, у сталкеров например другой класс. Классы можно глянуть в scan.pm




 

Простой тайник, который будет заспавнен при НИ с прописанным в нем хабаром:


 
 

[ХХХ]  

; cse_abstract properties

section_name = inventory_box

name = level_inventory_box

position = -246.44346618652,-24.793485641479,-135.53407287598

direction = 0,0,0



; cse_alife_object properties

game_vertex_id = 4

distance = 0

level_vertex_id = 11711

object_flags = 0xffffff3b

custom_data = <<END

[spawn]

exo_outfit

medkit_scientic = 2

medkit_army = 1

antirad = 2

bandage = 4

ammo_5.56x45_ap = 3

ammo_9x39_pab9 = 4

grenade_f1 = 3

END



; cse_visual properties

visual_name = equipments\item_rukzak

В этом случае нам нужно только вставить данную секцию в alife_локация с нужными координатами и вертексами и отредактировать на ваш вкус и потребности эту часть секции:

 

[spawn]

exo_outfit

medkit_scientic = 2

medkit_army = 1

antirad = 2

bandage = 4

ammo_5.56x45_ap = 3

ammo_9x39_pab9 = 4

grenade_f1 = 3

END

В данном случае в тайнике будет лежать:
Экзоскелет
две научные аптечки
армейская аптечка
два антирада
четыре бинта
три пачки патронов 5.56х45
четыре пачки патронов 9х39
три гранаты Ф-1

  • 0
Powered by Tutorials 1.5.0 © 2024, by Michael McCune

реклама на сайте подключена

Использование материалов сайта только с разрешения Администрации!
Или с указанием прямой ссылки на источник. 2008 - 2017 © Stalker-Worlds