Перейти к контенту

[SoC] Ковыряемся в файлах


Halford

Рекомендуемые сообщения


где прописаны конфиги этой "святой троицы".

 


name = mil_freedom_member0005position = -6.52704334259033, -6.1598424911499, 81.1638031005859character_profile = mil_Svoboda_zoneguardgame_vertex_id = 1580level_vertex_id = 301133visual_name = actors\svoboda\stalker_sv_exoskeleton


В character_desc_military.xml смотри секцию

<specific_character id="mil_Svoboda_zoneguard" team_default = "1">


тогда где этим двоим идёт прописка оружия?

Смотреть надо в character_desc_simulation.xml
<specific_character id="sim_svoboda_specnaz_prut" team_default = "1"><name>sim_svoboda_specnaz_prut_name</name><community>freedom</community> <terrain_sect>stalker_freedom_terrain</terrain_sect><supplies>[spawn] \nwpn_sig_m2 \nammo_5.56x45_ap = 1 \n


и

<specific_character id="sim_Svoboda_specnaz_leshii" team_default = "1"><name>sim_Svoboda_specnaz_leshii_name</name><community>freedom</community> <terrain_sect>stalker_freedom_terrain</terrain_sect>[spawn] \nwpn_sig_m2 \n

Изменено пользователем BFG

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение
Можно ли при получении определенного инфопоршня провалить квест,

Можно. Открывай свой "таск", где задание прописано и вставляй туда строку:

<infoportion_fail>поршень для провала задания</infoportion_fail>

 

Вот например, из чистого ТЧ, задание для Волка

<game_task id="esc_dinamit_to_volk">
<title>esc_dinamit_to_volk</title>
<objective>
<text>esc_dinamit_to_volk_0</text>
<icon>ui_iconsTotal_esc_dinamit_to_volk</icon>
<infoportion_complete>esc_kill_bandits_quest_done</infoportion_complete>
<infoportion_fail>esc_wolf_dead</infoportion_fail>

Задание будет провалено в случае смерти Волка, будет получен поршень - esc_wolf_dead

Изменено пользователем BFG
  • Спасибо 1

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение

@losiara, Это вообще зачем такие желания ? Чтобы не легко и не радостно что-ли ?

Новые секции "чего угодно", ты можешь прописывать в абсолютно любом файле alife_, любой локации, ничего для этого не надо создавать и регистрировать нигде. 

 

Просто №№ добавленных секции обязаны быть больше, чем самый последний № секции в данном alife_ ДО добавления.

ACDC, всё равно при упаковке спавна запихнёт твои секции в нужный alife_ локации согласно game_vertex.

  • Согласен 1

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение

Подскажите пожалуйста такой вопрос :

- вот создал я смарт-террейн. Поместил туда 3 кровососов. Побегал по локации, нащёлкал скринов с координатами точек путей для каждого. Ну точек по 4-5. Переписал их в вэй-файл.

 

Собственно меня интересует такая штука : вот сработал поршень, появились эти 3 сосыча. 

1. Где они появятся ? В координатах смарт-террейна ? А потом будут идти до своих путей ?

2. Или они появятся каждый на начальных точках своего пути ?

3. А как узнать какой из них на какой путь будет назначен ? Это случайное распределение ?

4. Насколько далеко ( в метрах ) можно делать пути мобов от центра смарт_террейна ? 

5. Если я в кастом_дате СТ, не буду ставить строку cond = {+поршень}, значит они у меня там будут прямо с НИ ?

Спасибо.

Изменено пользователем BFG

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение

@DraBBotenko, Каждый костёр должен содержать секцию рестриктора с restrictor_type = 2 ( запрет войти ). Также задай точку таска в 2-3 метрах от костра для местного лагеря. Иначе, при выходе в а-лайф у тебя мобы будут появлятся в центре кампа, т.е в самом костре.

А если задашь task, то они появятся рядом и потом начнут нормально рассаживаться у костра.

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение

Есть логика рестриктора :

[sr_idle@one]
on_info = {+поршень1} sr_idle@two

Добавил ещё один поршень и хочу чтобы логика в sr_idle@two переходила ИЛИ по первому ИЛИ по второму поршню.

Как сделать правильно ?
Так
[sr_idle@one]
on_info = {+поршень1},{+поршень2} sr_idle@two

или так

[sr_idle@one]
on_info = {+поршень1 +поршень2} sr_idle@two

Или оба варианта не правильны, тогда как ? Запутался совсем.

Спасибо.

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение

@Helgi, Попробуй так : файл gamedata\config\scripts\esc_trader.ltx найди там секцию

[mob_trader@new_start_intro1]
anim_global = chair_hack_to_desk
on_signal = animation_end| mob_trader@new_start_intro2 %+esc_trader_hello_played%
can_talk = false
tip_text =

и сделай переход минуя секцию "Я тебя спас...". Замени вторую строку, на вот эту:

on_signal = animation_end| mob_trader@new_start_intro3 %+esc_trader_hello_played%
Изменено пользователем BFG
  • Спасибо 1
  • Согласен 1
  • Полезно 1

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение
Ну во первых файлы m_army.ltx, m_bandit.ltx и m_fraction.ltx игрой не читаются, и для неё не существуют.

Прописать инклудом в stalkers.ltx любой из этих трёх,  тоже не будут читаться ?

 

 

 

начинают палить по тебе с нечеловеческой точность и с огромного расстояния.
Это просто взято и немного доработано с мода "Тайные Тропы 2". Там точно такими же были Фантомы в Припяти. 1 выстрел сразу ХШ. Изменено пользователем BFG

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение

@Outfater,

1. Задай в файле zone_map.xml координаты вне экрана. Подробнее читай в теме "Худ".

2. Можно не удалять. Достаточно закомментить два таска.

Один в info_portions.xml вот так:

<info_portion id="storyline_actor_start">
   <!--<task>storyline_eliminate_gunslinger</task>-->
  </info_portion>

Второй в info_l01escape.xml вот так:

<info_portion id="esc_kill_gunslinger">
       <!--<task>storyline_eliminate_gunslinger</task>
        <article>about_enciclopedia</article>
        <article>sl_beginning</article>-->
    </info_portion>

Если хочешь полностью вычистить задание из конфигов, то поиском по артиклям и таску. Поршень лучше не трогай, на него может ещё что-то быть завязано, не смотрел.

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение

Прошу помощи.

Дано : стандартный лифт с 2-мя дверцами - lift_01 и lift_02. По дефолту - ЗАКРЫТЫ. Сидят под стандартной логикой "открыл-закрыл", один и тот же файл в кастом_дате.

[logic]
active = ph_door@close

[ph_door@close]
locked = false
closed = true
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop
on_use = ph_door@open

[ph_door@open]
locked = false
closed = false
snd_open_start = trader_door_open_start
snd_close_start = trader_door_close_start
snd_close_stop = trader_door_close_stop
on_use = ph_door@close

Неизвестно, какую дверцу наш ГГ откроет первую.

 

Найти: как сделать так, чтобы при открытии любой из двух дверей в ПЕРВЫЙ раз, выдавался поршень. И в дальнейшем он больше не выдавался, даже если игрок будет баловаться с дверцами, нажимая на них "туда-сюда". Т.е. поршень нужен разовый и только при первом открывании.

 

Спасибо.

Изменено пользователем BFG

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение

 

 

снять координаты полёта на нужной тебе высоте.
А как это сделать если ГГ не может летать ?

В демо-рекорде, используя rs_stats on и в SDK невозможно снять lv и gv.

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение

@Kober(BRUC), Может эти способы и не совсем правильные, но других не знаю.

- если ящики сделаны геометрией, то никак,  у них просто нет имени.

- если ящики сидят в оллспавне, то найти все их в секции локации, поставить ГГ на ящик, глянуть координаты места и найти похожие. Это и будет искомый ящик.

- положить в каждый ящик разные итемы, скомпилить оллспавн, начать НИ, пробежаться по ящикам и узнать по предметам, какой тебе нужен.

Изменено пользователем BFG
  • Спасибо 1
  • Согласен 1
  • Полезно 1

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение

@Дизель, Есть такой вариант. Но не стал про него упоминать, ибо это уже сложно. Неизвестно какой мод, неизвестно какие локации, неизвестно сможет ли человек настроить свою папку с конфигами для СДК. А это реально непростой процесс.

Например папку с конфигами НС, чтоб её корректно видел СДК я настраивал наверно месяц. И то после того как её уже на половину настроил другой человек, я постоянно задавая нубские вопросы в теме по СДК. Но настроил таки, хотя не уверен что прям на 100%, но локи компилятся и СДК не ругается. Так что этот вариант самый крайний и сложный.

  • Согласен 1
  • Полезно 2

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение
И нужно что бы при подборе данного предмета вызывалась определенная функция.

Дополню пост @=VENOM=, ставь в то место например 

new_hmm.checking_use_item(obj)

 

Затем в new_hmm.script пишешь такую функцию

function checking_use_item(obj)
local ln = level.name()
local actor = db.actor
local sec = obj:section()
if ln=="имя_локации" and sec=="имя_итема" then actor:give_info_portion("имя_поршня") скрипт.имя_функции()
.....
.....
end
end

Можешь убрать выдачу поршня по взятию итема и оставить только активацию функции. Строк может быть несколько.

Пример взят из Народной Солянки 3.09.2010. Если она у тебя есть, открой braad_test.script и посмотри там как сделано отслеживание по взятию предмета или отслеживание по выдаче поршня.

Изменено пользователем BFG
  • Спасибо 1

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение

Вопрос такой :

- в чём различие двух логик. Читал на Вики, сказано в первом случае "что произойдёт при вводе правильного пароля", а во втором случае "что произойдёт при вводе установленного пароля". Интересно, разве "правильный пароль, это НЕ установленный пароль". Они разные ? Не понятно.

[ph_code]
code = 123456789
on_code = nil %+поршень%
on_check_code = 123456789 | %+поршень%

и ещё такой вопрос : как привязать к логике ввода кода, звуковой эффект. Например ввёл правильный код - раздался звук. Можно ли сделать наподобие звуковых эффектов, как в секциях открывания\закрывания двери.

Спасибо.

Изменено пользователем BFG

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение

Опять парочка вопросов :

1) можно ли заспавнить труп монстра через оллспавн, по аналогии с трупом НПСа, используя параметр upd:health = 0 ?

2) если пункт №1 сработает, то можно ли его спавнить ВНЕ пределов АИ-сетки ? По идее трупу ведь всё равно, есть там нода или нету.

3) из пункта №2, ещё такой вопросик, что первично для движка Меченый или Сидорович ))) ?

- сначала проверяется нода, потом идёт спавн, потом идёт смерть.

или

- сначала идёт спавн, потом проверка ноды, потом смерть.

 

Спасибо.

Изменено пользователем BFG

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение

Вопрос такой:

- а в чём принципиальная разница между:

<infoportion_set_complete>zadanie_sdelano</infoportion_set_complete>
и
<infoportion_complete>zadanie_sdelano</infoportion_complete>

Поршень выдан рестриктором стандартно, но почему-то в 1-ом случае пункт задания не закрывается, а во 2-ом случае пункт задания закрылся.

Спасибо.

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение

Очередной вопрос по логике.

Есть НПС, который двигается по очень простой схеме, от одной точки кампа до другой.

 

custom_data = <<END
[smart_terrains]
none = true
[spawner]
cond = {+info1}

[logic]
active = kamp

[kamp]
center_point  = mob_camp_center
path_walk = mob_camp_center_task
radius = 3
on_info = {+info2} walker1

[walker1]
path_walk = mob_walk
path_look = mob_look
on_info = {+info3} walker2

[walker2]
path_walk = mob1_walk
path_look = mob1_look
danger = danger_ignore
on_timer = 20000 | kamp1

[kamp1]
center_point  = mob1_camp_center
path_walk = mob1_camp_center_task
danger = danger_ignore
radius = 3

[danger_ignore]
ignore_distance = 0
END

 

 

Всё работает нормально, НПС идёт куда надо и приходит куда надо и там сидит травит байки.

Одна только неприятность : если ГГ уходит из алайфа НПСа, пошарить по локации и потом возвращается, например через некоторое время, то НПС оказывается в секции [walker2] почему-то. Потом согласно таймеру он конечно перейдёт в [kamp1].

 

Как сделать так, чтобы НПС при достижении [kamp1], всегда в нём и оставался, независимо, от того где шастает наш ГГ ?

Спасибо.

Изменено пользователем BFG

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение

 

 

А вообще можно - самое простое - добавить ящику custom_data в секцию, в файле которой прописать в секции spawn нужные предметы.
Зачем такие сложности с кастом датой, если можно сделать любой ПУСТОЙ ящик\рюкзак в оллспавне и по событию запихнуть в него то,  что надо.

Например , кусочек из скрипта Солянки

local items = {["патроны"] = 3, ["пушка"] = 1, ["антирад"] = 4, ["аптечка"] = 2, ["артефакт"] = 1}
        local t_box = alife():object("имя ящика в оллспавне")
        if t_box then
           local pos  = t_box.position
           local lvid = t_box.m_level_vertex_id
           local gvid = t_box.m_game_vertex_id
           local id   = t_box.id
           for k,v in pairs(items) do
            for i = 1, v do
             alife():create(k, pos, lvid, gvid, id)
            end
           end  

И не важно где будет этот ящик, в онлайне или в оффлайне. Способ проверен и работает.

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение
 на кусок от level_changer-а похоже

С чего вдруг ? ЛЧ это частный случай рестриктора.

А фрагмент  это шейп. А вот ЧЕГО шейп, это гадание на косточках совы натянутой на глобус.

 

p.s. Ага, нашёл, этот рестриктор

 

; cse_abstract properties
section_name = space_restrictor
name = esc_tips_fox
position = 287.200012207031, 16.6319103240967, 275.321502685547
direction = -0.104504659771919, 0.517827808856964, -0.0501847825944424
id = 65535
version = 118
script_version = 6
spawn_id = 506

; cse_alife_object properties
game_vertex_id = 0
level_vertex_id = 594270
object_flags = 0xffffff3e
custom_data = <<END
[logic]
active = sr_idle

[sr_idle]
on_actor_inside = {+agroprom_military_case -escape_stalker_help} sr_tip %+escape_stalker_meet +escape_stalker_help +escape_stalker_dog_spawn +esc_find_railroad_passage_done%
on_info = {+escape_stalker_help}  sr_idle@end

[sr_tip]
name = escape_fox_quest
type = tips
single = true
on_signal = tip_sended| sr_idle@end

[sr_idle@end]
END

; cse_shape properties
shapes = 6
shape_0:type = box
shape_0:axis_x = 71.6746063232422,0,0
shape_0:axis_y = 0,18.0631980895996,0
shape_0:axis_z = 0,0,7.15800046920776
shape_0:offset = 0,0,0
shape_1:type = box
shape_1:axis_x = 71.6746063232422,2.67008715582051e-007,-2.13606972465641e-006
shape_1:axis_y = 0,18.063196182251,1.34581313204762e-007
shape_1:axis_z = 0,2.66656297043255e-008,7.15800046920776
shape_1:offset = -70.810791015625,3.28049087524414,0.246719360351563
shape_2:type = box
shape_2:axis_x = 70.5857162475586,-5.34017431164102e-007,-12.4460964202881
shape_2:axis_y = 6.72906566023812e-008,18.063196182251,-6.72906566023812e-008
shape_2:axis_z = 1.24296712875366,1.06662518817302e-007,7.04925537109375
shape_2:offset = -139.549942016602,6.66907978057861,6.34806823730469
shape_3:type = box
shape_3:axis_x = 64.9593124389648,-1.00128272606526e-006,-30.2908554077148
shape_3:axis_y = 3.81672322191662e-007,25.6135959625244,1.90836161095831e-007
shape_3:axis_z = 3.0250871181488,0,6.48735809326172
shape_3:offset = -203.898208618164,6.86461544036865,27.2836456298828
shape_4:type = box
shape_4:axis_x = 64.9593124389648,-1.00128272606526e-006,-30.2908554077148
shape_4:axis_y = 3.81672322191662e-007,25.6135959625244,1.90836161095831e-007
shape_4:axis_z = 3.0250871181488,0,6.48735809326172
shape_4:offset = -260.097442626953,7.74838256835938,53.8768310546875
shape_5:type = box
shape_5:axis_x = 65.4553070068359,4.65114135295153e-006,-45.8319931030273
shape_5:axis_y = -1.67716643773019e-006,26.4829940795898,9.86568466032622e-007
shape_5:axis_z = 6.40486860275269,3.32790563106755e-007,9.14716148376465
shape_5:offset = -318.800598144531,12.4033985137939,88.3407592773438

; cse_alife_space_restrictor properties
restrictor_type = 3

 

 

Изменено пользователем BFG

"Кругом зомби.....у меня кончаются патроны...."

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...