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

Внимание. На форуме проводятся технические работы с боковым меню.

_Val_ _Val_

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


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

@Wo1fRam, в  sr_psy_antenna.script есть функция PsyAntenna:update_sound()

Которая как раз и заглушает все звуки.

А по вашей ситуации - используйте в рестрикторе схему sr_psy_antenna:

[sr_psy_antenna]
eff_intensity = 50
hit_intensity = 35
phantom_prob = 100
postprocess = psy_antenna.ppe
mute_sound_threshold = 15

Подставляете свой постпроцесс, ставите на ноль интенсивность излучения/спавн фантомов и самое интересное - параметр mute_sound_threshold, который и занижает все звуки. Поставите ноль - будет ГГ глухой.

volazar, То-то и оно, что такая схема мне не совсем подходит. Я пытаюсь сделать некоторое подобие аномалии "Глухарь" из книг, поэтому надо чтобы ГГ был глухим не в пределах рестриктора, а ещё некоторое время.

Wo1fRam.gif
Мой канал на YouTube

Бессмысленно осмысливать смысл неосмысленными мыслями.

@Wo1fRam,  Так а что мешает переходить на другую схему при выходе из рестриктора? Повесить таймер на нужное время и вырубать.

Входим в рестриктор, активируется глухота, выходим, запускается вторая схема (например глушащая только звук, без эффектов). И секунд через 5 отключается.

volazar, Так если из рестриктора выйти, то сразу всё нормально будет. А мне надо, чтобы ГГ забежал в рестриктор, получил контузию и бегал потом глухой ещё минут 40. Тут разве подойдёт схема sr_psy_antenna?

Wo1fRam.gif
Мой канал на YouTube

Бессмысленно осмысливать смысл неосмысленными мыслями.

@Wo1fRam, На входе в рестриктор проверяем что актор внутри рестриктора (on_actor_inside), затем переходим на схему.

На выходе проверяем что актор вышел из зоны (on_actor_outside), переходим на новую схему и запускаем таймер (on_timer), по истечении которого схему отрубаем. Помогут 2 поршня.

Яркий пример - двери бункера на Янтаре. Входим в рестриктор - дается поршень, дверь открывается. Выходим из рестриктора - поршень забирается, дверь закрывается.

Единственный минус - таймер сбросится при сейв/лоаде.

Возможно кто нибудь из знающих предложит другой вариант...

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

Всем привет. У меня несколько вопросов.

1.) Каким образом можно скриптово (например, через диалог) сменить визуал непися?

 

2.) Я слышал, в каком-то из модов осуществлена возможность стрельбы орудиями БТР... В каком это моде и как это сделано? Я предполагаю, нужно покопать скрипты логики ph_car и посмотреть, каким образом сделана простая стрельба БТР. А затем это дело как-то прибиндить :)

 

3.) Хотел сначала в моделирование написать... Дело такое - (да, знаю, бред, но это пока =), хотел пулемет сунуть на крышу не только БТР, пока тестировал на камазе... В будущем, сделаю, например, "Малыша", а там нужен пулемет... Так я попробовал. Три кости добавил, названия верные, иерархия тоже. В СДК настроил верно. В игре безлоговый вылет. О подобном читал на сталкерине:

 

Называть хелперы можно в процессе создания или после установки всех хелперов. Называть можно как Вам самим будет удобно и понятно, НО хелперы root, front_axle, back_axle не советую. Это именно те хелперы которые нельзя определить в конфига (*.ltx) и может случиться так что игра будет вылетать с нулевым логом.

 

Однако это моей проблемы не решает. Я никаких костей не трогал абсолютно, только создал три новых, соблюдая иерархию. Сначала прописал, как в инклуде БТРа:

[mounted_weapon_definition]
fire_bone       = mashine_gun_fire_point ; fire bone name
rotate_x_bone   = mashine_gun            ; rotate X-axis(pitch) bone name
rotate_y_bone   = mashine_gun_tower      ; rotate Y-axis(head)  bone name
min_gun_speed   = 0.5
max_gun_speed   = 2.5
wpn_section     = stationary_mgun

Безлоговый вылет... Убрал это - тоже самое. Что это и как с этим бороться? Дело, как я понимаю, не в модели, а в текстовой части, потому писал сюда.

 

4.) Можно ли заставить непися сесть в машину и управлять ей? Или хотя бы заставить его сесть в нее, и управлять машиной через логику?

 

Заранее всем спасибо.

-----

 

 

заглушить все остальные звуки

 

В ЛВ_ТоДе в начале игры эффект сильного головокружения , затемнения экрана и тяжелого дыхания ГГ. Кроме дыхания ГГ ничего не слышно. Посмотри, как это сделано там, и вместо эффекта головокружения и тяжелого дыхания вызови свой постэффект и звон в ушах. Как я думаю, эффект будет длиться не все то время, что ГГ находится в нужном тебе рестрикторе, а время самой анимки.

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

stalkerok007, Стрельба БТР была и в оригинале. Глянь тут. Точно так же можно реализовать и движение транспорта. Только насчёт "катания НПС на них" не знаю. Или речь идёт о ЗП?
За наводку спасибо, посмотрю. Но, кажись, там тоже не совсем то будет.

Wo1fRam.gif
Мой канал на YouTube

Бессмысленно осмысливать смысл неосмысленными мыслями.

@Wo1fRam, да знаю я =), логику всю почти наизусть. Я имел ввиду, чтобы БТР не сам стрелял, а ГГ (игрок) стрелял, сидя в нем. То есть, чтобы я мог сесть в БТР, ездить и стрелять. Пока игрок стрелять не может, только БТР по логике. Про то, чтобы БТР ездил, и так ясно.

Еще один вопрос:

5.) Есть ли у вертолетов подобие схемы remark для неписей? Или же... В общем, мне надо, чтобы двигаясь по точкам пути он отыгрывал определенную анимку, либо, сидя на ремарке, отыграл определенную анимку и дальше полетел обычной секцией heli_move.

@Viнt@rь,ну раз в самой логике такой схемы нет, то это нужно обходить скриптами?.. Я как-то так думал, задавая вопрос. Прошу прощения, если не прав. 

Только одну проблему со звуком решил, как появилась другая: как остановить зацикленный звук? Вызываю я его вот так (кусок функции):

local snd_idle = sound_object("affects\\tinnitus3a")
snd_idle:play_no_feedback(db.actor,sound_object.s2d+sound_object.looped, 0, vector():set(0, 0, 0), 18.0)

Пытаюсь остановить так:

if snd_idle:playing() then
snd_idle:stop()
end

function gluhar()
   local active_slot = db.actor:active_slot()
    if active_slot==2 or active_slot==3 then
     db.actor:drop_item(db.actor:active_item())
    end
   level.set_snd_volume(0.04)
   level.add_pp_effector("gluhar_start.ppe",777,true)
   level.add_cam_effector("camera_effects\\fusker.anm")
   local snd_start = sound_object("anomaly\\gluhar_start")
   local snd_idle = sound_object("affects\\tinnitus3a")
   snd_start:play_no_feedback(db.actor,sound_object.s2d, 0, vector():set(0, 0, 0), 18.0)
   local time = time_global()
   local timer_start = time+(14)*1000
   local timer_idle = time+(120)*1000
     level.add_call(
   function()
    if time_global() > timer_start then return true end
    end,
   function()
   level.remove_pp_effector(777)
   level.add_pp_effector("gluhar_run.ppe",778,true)
   snd_idle:play_no_feedback(db.actor,sound_object.s2d+sound_object.looped, 0, vector():set(0, 0, 0), 18.0)
   end)
               level.add_call(
      function ()
         if time_global() > timer_idle then return true end
         end,
      function ()
   level.set_snd_volume(1)
   level.remove_pp_effector(778)
   if snd_idle:playing() then
   snd_idle:stop()
      end
   end)
end

Поясняю: ГГ заходит в рестриктор, получает контузию (роняет пушку, анимация камеры, постэффект, звук). Потом, через 14 секунд (длина звука) постэффект вырубается и врубается другой, играется зацикленный звук, включается таймер 120 секунд (у ГГ отходняк после контузии - планирую сделать рандомным). Когда заканчивается таймер, постэффект убирается, громкость окружающей среды восстанавливается, но зацикленный звук всё ещё играет.

 

 

 

Функция вызывается из логики рестриктора, поэтому прописана в xr_effects.script

Пробовал использовать для выключения только snd_idle:stop() - не помогает.
Если что не так - не ругайтесь. В скриптах не шибко силён, всё делал по образцу и "методом научного тыка".

Wo1fRam.gif
Мой канал на YouTube

Бессмысленно осмысливать смысл неосмысленными мыслями.

@Wo1fRam, Я проигрывал так:

local snd_obj = xr_sound.get_safe_sound_object([[characters_voice\vse_vyshe_vyshe]])
snd_obj:play_no_feedback(db.actor, sound_object.s2d+sound_object.looped, 0, vector(), 1.0)

И остановка так:

local snd_obj = xr_sound.get_safe_sound_object([[characters_voice\vse_vyshe_vyshe]])
snd_obj:stop()

Все прекрасно работает.

 

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

Wo1fRam, метод запуска звука play_no_feedback не даёт обратной связи (что явно следует из его названия, кстати). Ты просто дал команду проиграть звук и далее этот процесс не может быть подвержен твоим запросам (например, попытке проверить статус проигрывания).
Чтобы иметь возможность обращаться к запущенному процессу, следует использовать методы play или play_at_pos, примерно так:

local snd_obj = sound_object("affects\\tinnitus3a")
snd_obj:play(db.actor, 0, sound_object.s2d)
...
if snd_obj:playing() then
  snd_obj:stop()
end

 

 

Изменено пользователем Kirgudu
  • Нравится 1

Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD

Полезное: модули Артоса, XML парсер

Kirgudu, ну так я ж и говорю - в скриптах плохо разбираюсь :) 

Я правильно понял, в твоём примере 0 - это громкость? Или как громкость настроить?
Да, забыл добавить - ЗП.

Wo1fRam.gif
Мой канал на YouTube

Бессмысленно осмысливать смысл неосмысленными мыслями.

Нет, это задержка перед началом проигрывания звука. А громкость в данном случае можно перед проигрыванием установить так:

snd_obj.volume = 2

Правда, лично я не проверял, работает ли это.
Ну или, как вариант, по-прежнему пользоваться методом play_no_feedback, но без проверок на статус проигрывания.

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

Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD

Полезное: модули Артоса, XML парсер

Тебе сюда: http://stalkerin.gameru.net/wiki/index.php

ColR_iT

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

Привет мил-человеки! Объясните мне заросшему жгучим пухом КАК?!?! Можно прикрутить костюмчикам параметры лечения, кровотечения остановки, выносливости и сытости и выведения радиации? Пытался копировать строки с костюмов где это есть, на скаты 9, 10 и армейский экзу(военный, не штурмовик), копировал - не работает... Копировал из артефактов туда же, не работают. Изменял параметры артефактов - работает на артефактах. Мил-человеки, заблудился я в строках outfit.ltx, объясните наглядно как это сделать? Может последовательность строк, пробелы и пр, ну просто хреновина какая-то... И как разобраться с тем, что 0.0002 это +200% к текущему параметру, а пишеш 0.2 или просто 2 - получаеш не рабочий параметр или очень медленный. Как-то на оборот. Дайте понять про костюмы и проценты, бо голова кругом...

Спуск! Выстрел! И воздух рассекая

Судьба моя устремлена вперед Свинцом одарит, душу отнимая.

Сквозь дырку в каске жизнь твоя уйдет.

 

 

Копировал из артефактов туда же, не работают.
Туда же - это куда? Все пять параметров: health_restore_speed (восстановление жизни), radiation_restore_speed (вывод радиации), satiety_restore_speed (уменьшение/увеличение сытости), power_restore_speed (восстановление/уменьшение выносливости) и bleeding_restore_speed (уменьшение/увеличение кровотечения), работают, если их прописать в конфиге костюма, если не работает, значит не туда написал.

По поводу того, как игра просчитывает, что 0.0002 - это 200%, тебе мало кто ответит, просто прими как должное и всё.

Подскажите пожалуйста, поставил бъющиеся инвентарные ящики типа 

box_metall_01 с логикой

 

[2408]
; cse_abstract properties
section_name = physic_destroyable_object
name = jup_b205_destroyable_object_0014
position = -391.530700683594,4.33521604537964,2.94278502464294
direction = 0.00139200000558048,2.95377206802368,0.0199730005115271

; cse_alife_object properties
game_vertex_id = 3708
distance = 0
level_vertex_id = 1231404
object_flags = 0xffffff3a
custom_data = <[drop_box]
community = def_box
items = medkit_scientic, 5, medkit_army, 5, antirad, 5, bandage, 10
END

; cse_visual properties
visual_name = dynamics\box\box_metall_01

; cse_ph_skeleton properties

; cse_alife_object_physic properties
physic_type = 0x3
mass = 10

разбиваю ящик, а там нифига нету. Почему?

 

Надо дело довести до конца!

@ColR_iTвот-вот, в этом и есть моя закавыка! Эти 5 параметров куда нужно вставить? Я их после строй пнв вставлял, перед имунитетом самого костюма, перед параметром переносимого веса, под строчкой иконка во весь рост. И все одно - не работает! Может ты подскажеш куда правильно написать эти строки? А лучше на "живом примере" покажи.,

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

Спуск! Выстрел! И воздух рассекая

Судьба моя устремлена вперед Свинцом одарит, душу отнимая.

Сквозь дырку в каске жизнь твоя уйдет.

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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