Перейти к содержимому



Згорнути %s Последние сообщения тем


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


  • Авторизуйтесь для відповіді у темі
Повідомлень у темі: 18

#1
Гость_volazar_*

Гость_volazar_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:

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

Метод 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



#2
Гость_frankenshtayn_*

Гость_frankenshtayn_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:

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

 

[ХХХ]  

; 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



#3
Гость_Dimon02022_*

Гость_Dimon02022_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:
Вопрос. Обязательно наполнять тайник? Или можно просто его создвть, а потом через обычный спавнер наполнить?

#4
Гость_volazar_*

Гость_volazar_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:
Dimon02022, Можно заспавнить пустой (через алл спавн). А потом уже или наполнять или нет.

#5
Гость_frankenshtayn_*

Гость_frankenshtayn_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:
Quote (Dimon02022)
Обязательно наполнять тайник? Или можно просто его создвть, а потом через обычный спавнер наполнить?

Простой тайник нужно наполнять сразу, т.к. в процессе игры вы не сможете внести изменения в АллСпавн, без необходимости начала НИ. Тайник с присвоенным id можно наполнить в любой момент в процессе игры, скриптовым методом(об этом позже)... А наполнять тайник спавнером.... Хм... Попробуйте. Потом поделитесь опытом.



#6
Гость_Dimon02022_*

Гость_Dimon02022_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:

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

Можно ли сделать тайник так, что бы он не спавнился после обыскивания трупа, а лежал сразу в заданном месте?

Quote (Alter_Ego)
Если сразу - то проще использовать "простой тайник" через аллспавн,

Ставится тем же способом что и обычный тайник? Сегодня были попытки сделать его, но увы что-то не получилось. Как объяснил volazar, что-то друг с другом не сошлось.
 

Quote (Alter_Ego)
Хотелось бы узнать порядок Ваших действий, что, как и куда Вы прописывали, без этого можно только гадать...

Делал всё как написано в инструкции. Через ком. строку открывал ACDC. В секцию алайф_локация вписывал нужные строки, далее редактировал уже саму игру. Можете посмотреть тут.
Геймлевел и вертексы указаны. Просто у меня не захотел запаковываться обратно алл. спавн.
П.С. Координаты тайника: Крыша автобуса около Деревни Новичков.
 

Quote (Alter_Ego)
Что еще с алспавном делалось?

Больше ничего. Добавил а алайф и всё, дальше занялся файлами самой игры. Когда всё закончил, итог оказался печален.

Вот ошибка: f5b0f2a9cec2e477eb2e7ec3d0af2c056de69611
Самая последняя которая, две верхних - это я не так написал команду.


Повідомлення відредагував Fagot: 21 листопад 2013 - 10:19


#7
Гость_frankenshtayn_*

Гость_frankenshtayn_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:
Quote (Dimon02022)
Можно ли сделать тайник так, что бы он не спавнился после обыскивания трупа, а лежал сразу в заданном месте?

Если сразу - то проще использовать "простой тайник" через аллспавн, если делать через скрипт - Вы можете его заспавнить в любой момент игры.

 

Добавлено (31.03.2012, 21:55)
---------------------------------------------

Quote (Dimon02022)
Сегодня были попытки сделать его, но увы что-то не получилось. Как объяснил volazar, что-то друг с другом не сошлось.

Хотелось бы узнать порядок Ваших действий, что, как и куда Вы прописывали, без этого можно только гадать...

 

Добавлено (31.03.2012, 22:06)
---------------------------------------------
Хотя есть подозрение, что Вы игнорировали гейм и левел вертексы.

Добавлено (31.03.2012, 22:30)
---------------------------------------------

Quote (Dimon02022)
Просто у меня не захотел запаковываться обратно алл. спавн.

Ну это совсем другое дело... Если Вы внесли только секцию тайника - он запакуется. Что еще с алспавном делалось?

 

Добавлено (31.03.2012, 22:35)
---------------------------------------------
Еще, через командную строку:
распаковка команда -d all.spawn
запаковка команда -c all.ltx
Многие путают.

Добавлено (31.03.2012, 22:59)
---------------------------------------------

Quote (Alter_Ego)
Если Вы внесли только секцию тайника - он запакуется. Что еще с алспавном делалось?

!!!!!!!!!!! Ошибка Вашего ковыряния!!!!!!!!!!



#8
Гость_volazar_*

Гость_volazar_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:
Quote (Dimon02022)
что бы он не спавнился после обыскивания трупа, а лежал сразу в заданном месте?

А зачем так мудрить? Выдачу тайника можно прописать куда угодно, от диалога, до рестриктора, при входе в который, будет спавнится что угодно - в том числе и тайник. Тут уже все зависит от фантазии sm2.gif

По поводу запаковки - ругается на неизвестную секцию inventory_box , прописка которой в acdc.pl не помогла.

ЗЫ: Когда делал перса для статьи "работаем с алл спавн через acdc", тоже при запаковке была эта ошибка (только не на инвентори бокс, а на мою). Увы не помню как исправил тогда sm10.gif



#9
Гость_frankenshtayn_*

Гость_frankenshtayn_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:
Quote (volazar)
По поводу запаковки - ругается на неизвестную секцию inventory_box.

Уважаемый volazar, нашел я ошибку, у товарища Dimon02022, в алайфе имеется клон его секции рюкзака... Естественно аллспавн не упакует. Нужно удалить одну секцию, которая находится после секции [1] в алайфе, и впредь быть очень внимательным.



#10
Гость_volazar_*

Гость_volazar_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:

Alter_Ego, Аааа, все, посмотрел, так и есть. Одна секция стандартных нычек от ПЫС, а вторая такая же, но уже для создаваемого тайника sm7.gif
---------
Лучше, конечно, писать имя секции так:
section_name = respawn
----------------
Вот программа: 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
---------------------
Распаковывается также и соляночный спавн (запаковку пока не пробовал). Чтобы распаковать, надо в ту же папку где работаем кинуть дополнительно папку конфиг и добавить к батнику следующий ключ: -scan config -nofatal .


#11
Гость_Dimon02022_*

Гость_Dimon02022_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:
Quote (Alter_Ego)
у товарища Dimon02022, в алайфе имеется клон его секции рюкзака... Естественно аллспавн не упакует. Нужно удалить одну секцию, которая чнаходится после секции [1] в алайфе


Исправил, но всё равно та же ошибка при запаковке. Просматривал несколько раз на наличие клонов - всё чисто.


Повідомлення відредагував Fagot: 21 листопад 2013 - 10:24


#12
Гость_volazar_*

Гость_volazar_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:
Dimon02022, В шапке темы, под спойлером "Читать" глянь. ПРоверял раз 10, все спокойно запаковывается.
ЗЫ: Распаковывал спавн от НС, добавлял новую секцию и смог обратно запаковать
ЗЗЫ: Пока не тестировал в игре, но думаю все нормально будет.

#13
Гость_Vovalium_*

Гость_Vovalium_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:
Здравствуйте! Я создал тайник точь-в-точь как прописал Volazar в методе 2 (скрипт), только добавил то, что нужно мне. Около пещеры с анамалиями Электра, около моста трупов нет, хоть я и притащил его и обшманал, добавляя свои шмотки в него и собирая, нигде тайник не появился. Да и где эти координаты находятся?

#14
Гость_frankenshtayn_*

Гость_frankenshtayn_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:
Vovalium, Прошу прощения, чей труп и куда Вы притащили? Дело в том, что данный тайник появится ТОЛЬКО после обыска нужного тела, а именно трупа, который испокон веков :D лежит возле ТОННЕЛЯ с Электрами. Выложите под спойлер все Ваши правки, то, что вы делали и поясните, где именно и что вписывали, а так же поясните на какой платформе Вы экспериментируете. Попробуем решить Вашу проблему.

#15
Fаgot

Fаgot

    Сталкер

  • альтернативный текст
  • Нейтралы
  • Завсегдатай - больше 1 год на сайте
КПК - Сталкера
  • PipPipPipPip
  • Регистрация:
    14-листопад 10
  • 220 Cообщений
  • Пропуск №: 3158


Репутация: 3 Постов: 220
  • Страна проживания:СССР
  • Реальное имя:Александр
  • Пол:Мужчина
  • Город:Владивосток
VARSTAFF, ты слегка ошибся темой. Твой вопрос перенёс сюда.

#16
Гость_Outfater_*

Гость_Outfater_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:

Я тайник сделал, все нормально - появляется после опред. диалога с неписем, там где нужно и с чем нужно. Хочу кинуть туда записку, при взятии которой появляется новый тайник, и одновременно появляется новый квест в пда. Как должны выглядеть соотв. инфопоршни на все это, и поршни на выполнение и закрытие квеста? Спасибо.

В идеале, конечно, лучше увидеть расписанный процесс: берем записку в тайнике -- появляется квест (найти 2 тайника) и второй тайник -- берем записку во втором -- появл. третий, берем там -- квест засчитан.


Повідомлення відредагував Outfater: 20 листопад 2014 - 19:40


#17
Fаgot

Fаgot

    Сталкер

  • альтернативный текст
  • Нейтралы
  • Завсегдатай - больше 1 год на сайте
КПК - Сталкера
  • PipPipPipPip
  • Регистрация:
    14-листопад 10
  • 220 Cообщений
  • Пропуск №: 3158


Репутация: 3 Постов: 220
  • Страна проживания:СССР
  • Реальное имя:Александр
  • Пол:Мужчина
  • Город:Владивосток

Outfater, тебе необходимо изучить создание квестов. Слишком долго об'яснять всё, тем более, что есть уже готовые уроки. 

Поковыряйся в этой теме.



#18
Гость_StalkerMax WOOT_*

Гость_StalkerMax WOOT_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:

Мммм,вопрос как узнать кординаты X,Z,Y?



#19
Гость_вадя тапок_*

Гость_вадя тапок_*
  • альтернативный текст
  • Бродяги

КПК - Сталкера
  • Регистрация:
    --
  • Пропуск №: 0


Репутация: Репутация:

Как лучше создать тайник - через all.spawn или через скрипт?


Fаgot (17 червень 2016 - 15:06):
Это зависит от того, что для тебя "лучше" в данный момент.




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

Использование материалов сайта только с разрешения Администрации LENA_D!
Или с указанием прямой ссылки на источник. 2010 © bar-reaktor.stalker-worlds.ru
Не забывай о нас. Мы всегда рады тебе!!!

Рейтинг Ролевых Ресурсов - RPG TOP