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

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


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

@Muzafir, можно сделать экзоскелету уникальную секцию, например, exo_outfit_q1, и по ней проверять. Либо, если эта экза через all.spawn заспавнена, делать проверку по имени объекта:

if obj:name() == "esc_exo_outfit_0001" then...

Либо присвоить story_id при спавне, либо в all.spawn, и проверять

if obj:story_id() == story_ids.forbidden_ekza then...

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

 

В общем, способов море.

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

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

Всем привет! У меня 2 вопроса: 1) Где изменять визуалы группировок НПС и чтобы лутаемые костюмы соответствовали визуалу. 2) Где изменять вооружение НПС.

@naxac,  Спасибо, думаю f obj:story_id()  - оптимальный вариант

а if obj:name()  - еще лучше, Работает по названию, которое дал в ЛЕ. И не нужно лишних story id

@ru trash_, Профили НПС описаны в файлах character_desc_имя локации.xml. Чтобы лутаемый костюм соответствовал профилю, нужно его в разделе supplies указать, наверное. Там же и вооружить можешь НПС по своему усмотрению.

Изменено пользователем Muzafir
58 минут назад, ru trash_ сказал:

чтобы лутаемые костюмы соответствовали визуалу

В death_manager.script поставить проверку при обыске трупа и по его визуалу спавнить соответствующий костюм. Для понимания посмотри какой-нибудь аддон или мод с лутом брони, например старый IMM.

  • Спасибо 1

Здесь могла быть ваша реклама.

Всем привет! Есть такая функция:

Скрытый текст

function give_treasure()
    treasure_manager.get_treasure_manager():give_treasure("название тайника")
end

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

Секция on_use в логике, по видимому, не работает с трупами. Known info  - просто выдает инфопорцию, а функцию же надо еще как-то вызвать.

Только что, Muzafir сказал:

А как можно прикрутить ее к трупу

xr_motivator.script

Вот тут

function motivator_binder:use_callback(obj, who)
  if not self.object:alive() then
    -- твоя функция

 

  • Спасибо 1
  • Согласен 1

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил.

Я понял что моя старая подпись что-то нарушает. Удалил все ссылки.

7 часов назад, Muzafir сказал:

просто выдает инфопорцию, а функцию же надо еще как-то вызвать.

Так через инфопоршни можно вызывать функции. Это так, на будущее.

  • Согласен 5

Как то еще, кроме того чтобы засунуть проверку в коллбэк правильного скрипта?

P.S. извиняюсь, если не точно сформулировал: как-то еще, кроме того что уже подсказал Zander_driver?

Спрашиваю, т.к. это срабатывает с некоторой задержкой, иногда когда второй раз нажимаю "обыскать". Боюсь, что первый раз может не сработать, и игрок просто пройдет мимо.

 

@Muzafir, можно вызвать из treasure_manager, проверяя НПС по имени/профилю/группировке/и т.п. или не проверяя ничего, в функции CTreasure:use(npc):

Скрытый текст

if npc and db.actor then 
        if npc:name() == "finder" then
            krot_treasure.give_treasure_esc()
        end
    end

Тогда может выдать сразу два схрона, один из которых запланированный, а другой рандомный.

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

Здесь могла быть ваша реклама.

Всем спасибо, нашел статью о вызове функций и засунул ее в bind_stalker.script, теперь работает, как надо

Привет. Заранее извиняюсь, если такой вопрос был (искал в этой теме - не нашёл). Как при нажатии на ветку диалога проиграть звуковой файл с озвучкой? Вроде смотрел конфиги, скрипты в игре, но ничего такого не увидел...

Ну, да поможет Вам F1, да сохранит Вас F2, во имя Control`а, Alt`а и святого Delet`а. Enter.

@Котошметик, вызвать функцию через нужную реплику.

 

<phrase id="1">
	<text>text_1</text>
	<action>my_script.play_snd</action>
	<next>2</next>
</phrase>
<phrase id="2">
	<text>text_2</text>
	<action>my_script.play_snd2</action>
	<next>3</next>
</phrase>

Т.е добавляешь action. В скрипт пишешь такой код для проигрыша звука (это пример. Можешь найти другие, способов воспроизведения десятки, наверно)

function play_sound(sound,obj)
	if obj == nil then obj = db.actor end
	xr_sound.get_safe_sound_object(sound):play_no_feedback(obj, sound_object.s2d, 0, vector(), 1.0)
end

function play_snd()
    play_sound([[my_sound\dialog_1]])
end

function play_snd2()
    play_sound([[my_sound\papka\papka2\dialog_2]])
end

где my_sound имя папки в коренной папке sounds (ее указывать не надо), а dialog_1/2 имя аудио-файла без расширения *.ogg. Путь/имена могут быть любые, есс-но, это пример. Функция play_sound рабочая, пишется один раз и трогать ее не нужно. Если нужно добавить еще звуки, просто создаешь функцию аналогичную play_snd с другими путями ко звуку.

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

@Zander_driver, Именно. Поименованная должным образом фраза будет воспроизводиться автоматом. Я когда пытался переозвучить диалоги, это методом научного тыка понял.

 

В чистой игре там еще раровский архив лежит.

Изменено пользователем AndrewMor
  • Согласен 2

Сталкер - наше всё!

Просто вопрос. Всегда интересовало, от какого показателя берется расчет восстановления жизней на артефактах. Как-то странно видеть надпись "Жизнь + 450%". Давным-давно я думал, что это типа полоска жизни увеличится, а не реген, ну да ладно. Вопрос вообще в том, как можно изменить отображение этих чисел, скажем просто разделить на 100. Текст-то менять где я знаю. Желательно еще и саму формулу знать, и где она лежит, и как это вычисляется. Чтобы можно было сделать И тогда будет понятно, что идет регенерация 4,5% от максимума жизни в секунду. Чтобы выдавало "Реген + 4,5%" и это было именно так. Т.е. собрав 10% (1000, оно же в конфиге 0.001) было ясно видно, что идет реген одной десятой хп за секунду. Смысла в этом вообще-то уже давно нет, это просто для личного изучения вопроса.

Только что, neosquall сказал:

Желательно еще и саму формулу знать, и где она лежит, и как это вычисляется.

В исходниках движка.

xrGame/ui/ui_af_params.cpp

Применительно к цифрам "здоровья", на артефактах. В оригинале, если не ошибаюсь, они пишутся в процентах от скорости регена самого ГГ. А не от количества его здоровья.

Если к примеру, поменять актору реген хп в его конфиге, но не менять конфиги артов. То, цифры в описании артов изменятся.

  • Нравится 3
  • Полезно 1

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил.

Я понял что моя старая подпись что-то нарушает. Удалил все ссылки.

Всем привет! Есть какой не будь фикс для ТЧ , что бы не было видно аномалии ночью через ПНВ? Или для этого нужно движок править?

Pir%40t%40s.gif

@Купер, именно ночью. Я правил конфиги аномалий - сделал их невидимыми.Что бы повысить цену детекторов. Но ночью, при включённом ПНВ, все правки теряют смысл.

Днем https://yadi.sk/i/zrMbYQDkm0xRJg

Ночью https://yadi.sk/i/rhFBU5yRFRTaNw

@Купер, Большое спасибо. Проблема решена, вопрос снят.

Pir%40t%40s.gif

Такая ситуация. Когда в обойме пистолета нет патронов, то затвор отодвигается назад, а при ходьбе возвращается в другое положение, будто пистолет заряжен. Не подскажите, в чём проблема?
Вот так это выглядит:
 

Скрытый текст

ss-houdini-12-17-20-11-53-49-l01-dead-ci
ss-houdini-12-17-20-11-53-51-l01-dead-ci

 

Нужен 3D-артист для правок геометрии локаций.
Кто может помочь - пишите в ЛС.

@Houdini_one, а анимация ходьбы с затворной задержкой (anim_idle_moving_empty) в модели присутствует?

А движок её читает?

Зы. "чистый" ТЧ не читает точно*, X-Ray extensions - требуется скрипт - как в ранних версиях "Нового Арсенала".

 

* наверное....

AMD Athlon II X2 250, NVIDIA GTS 450, RAM 8.0 GB, WIN 7/64  правки Золотой Шар

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

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

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

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

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

Войти

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

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

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