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

Norman Eisenherz

Жители
  • Число публикаций

    839
  • Регистрация

  • Последнее посещение

  • Дней в топе

    1
  • AMKoin

    20,998 [Подарить AMKoin]

Norman Eisenherz последний раз побеждал 16 Октября 2023

Norman Eisenherz - автор самых популярных публикаций!

Баланс оценок

336

Недавние посетители профиля

Блок недавних посетителей отключен и не доступен другим пользователям для просмотра.

  1. Нашел – все-таки кодировка: некоторые спецзнаки, не требующие сохранения в TXT-файл с расширенной поддержкой Unicode, не указаны в дефолтной кодировке UTF-8 – скрипт с шаблоном поиска необходимо сохранять если не в Windows-1251 как XML-файлы с текстом, то хотя бы в ANSI. "Безопасными" являются знаки с кодами 33–126 (от !"#$%&@ до ^_|~, включая цифры и пунктуацию), меняются знаки в начале кодовой таблицы (• ¶ §) и после алфавита (° … ‰ — « » ±). Аналогично с соединением строк: game.translate_string(str_id) .. "…" – крокозябры на выходе, если не задать кодировку для многоточия.
  2. [ТЧ 1.0006] Скриптовое деление текста на фразы по меткам "•" (Alt+7, даже простой Блокнот такие понимает). Результат: деление по меткам и почему-то по буквам "в" (код 162). Сменил метку на "#" – деление строго по меткам. Предположил, что проблема в кодовых страницах Win10: например, вместо знака диаметра (код 0216) теперь просто буква "Ш". Проверил аналогичный скрипт, написанный для ЧН еще под Win7, и деление работает без ошибок даже по меткам "•". Чем вызвано такое пересечение знаков при поиске, и почему именно в ТЧ?
  3. Похоже, недопонимание: для задачи вывода субтитров требуется выловить названия реплик от разных источников. То, что каждой секции логики соответствует (почти) одноименный скрипт-обработчик, уже пройдено.
  4. Часть методов вывода звука указана в самих обработчиках: [xr_effects.script] ответ по рации "пусть не мельтешит здесь" / Круглов / КПК Призрака [ph_sound.script] пульты в X-16 / арена [sr_sound2d.script] война на складах Часть звуков выводится в голове ГГ. В db.sound[0] записей не появляется. Значительная часть звуков ссылается на конфиг [script_sound.ltx], из которого еще надо вынуть определенную ссылку для получения номера фразы и времени отображения субтитров. Иногда надо делать поправку на номер ранее выведенной фразы с тем же заголовком (диалоги в ТД). Я расставил ссылки в имеющихся скриптах и собрал пути/обертки в своем обработчике. Так получается значительно меньше мусорных звуков, вроде "привет / пока / убери ствол / анекдот / погода", чем при привязке ко всем звукам в [xr_sound.script] – из этого скрипта беру только номер звука при случайном выборе фразы (пленный Шустрый, например). Выборочно потестил прямую привязку к [xr_sound.script]: ловятся, в основном, одинаковые типовые звуки, тогда как на фразы NPC по ходу квестов почти никакой реакции. - АТП с Петрухой - Бес на Свалке - "деловое предложение" за 800 (есть только фразы охранников) - вопли и бубнеж Круглова - "мы не можем его так бросить" - война Долга и Свободы В общем, не все так просто в этой каше – это в ЧН уже есть почти готовый обработчик субтитров, и большая часть правок сводится к добавлению аргумента "отправитель".
  5. @Kirgudu Привязка в play_rnd срабатывает почти правильно – заметное отставание есть только в том случае, когда прибывшего на точку NPC выталкивает с этой точки кто-то другой, и анимация "дойти + развернуться" отыгрывается повторно, но это уже мелочи.
  6. Я с этого начал и пришел к [state_mgr.script]: в waypoint_callback сначала обсчитывается звук, просто привязанный к анимации, потом, с проверкой if pt_chosen_idx, звуки, привязанные к определенным точкам пути с присвоением self.sound_after_anim_start. Дальше update_standing_state(look_pos, snd) и state_mgr.set_state(…, snd). Не могу найти, в какой момент завершается анимация разворота NPC на точке и выполняется запуск назначенного звука, а не просто вычитывание его из памяти. К чему был абзац про глобальные переменные?
  7. [ТЧ 1.0006] Задача: привязать субтитры к звуку, который выдается после прибытия NPC в определенную точку и окончания анимации разворота. Пример логики: p2:name = wp02|sig=arrive|syn|s=mil_collect_phrase1 Привязка к флагу switched в [state_mgr.script] state_manager:set_state учитывает только прибытие на точку. Как правильно привязать обработку именно к моменту вывода звука?
  8. @abramcumner Указал же: ТЧ 1.0006. Ладно на базе Свободы красноглазики, но и в Долге то же самое. Скрин: https://drive.google.com/file/d/1p1J8jFm3SjDk1filSpAfZ9TQpXG1ACrT
  9. @Купер Шейдеры все равно накладываются поверх какой-то текстуры. Пытаюсь найти, какой именно.
  10. [ТЧ 1.0006] Из какой текстуры берутся корявые красные глаза, которые видно под противогазами Долга и Свободы? Проверил правкой файлов act_ecolog_mp, act_ekolog, act_stalker_black, act_svoboda_mp – нет эффекта в игре.
  11. Папка [textures\act\]. Костюмы одинаковые во всей трилогии, обычные головы в ЧН/ЗП идентичны. Головы именных NPC в ЧН/ЗП сделаны сходно, но зеркально и порядок расположения мелких частей другой – вряд ли совместимы.
  12. Новая секция ссылается на какой-то квестовый предмет?
  13. Если идея @RayTwitty с падением лута под карту верна (и всесильна), можно вынести спавн предметов около ГГ в отдельную функцию с небольшим разбросом координат и скармливать в нее нужные секции. Пример см. в [xr_box.script] create_items.
  14. Связи с номером слота быть не должно – новые детали спавнятся просто по именам. Действия "сброс оружия из рук" тоже нет, да и все равно в руках обычная модель, а не сломанная. В SDK или в каком-нибудь OGF viewer модель [wpn_flame_brk.ogf] открывается? Еще можно к спавну этой секции дописать local test_obj = alife():create("flamethrower_bad",pos,lv,gv)) и после спавна (отдельным вызовом, не в этом же цикле) проверить if level.object_by_id( test_obj.id )
  15. Все детали указаны как секции, а не как объекты (тип "string", а не "userdata") – не должно быть отличий в спавне. В конфиге предмета "flamethrower_bad" не была назначена прозрачная модель?
×
×
  • Создать...