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

Norman Eisenherz

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

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

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

  • Дней в топе

    1
  • AMKoin

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

Весь контент пользователя Norman Eisenherz

  1. @naxac Подставил ссылку на имеющийся вариант кнопки – вылет. Разделил эту же кнопку на 12 текстур (+d + h/t отдельно) – выводится. Осталось понять, что было не так в первом эксперименте… Ну, может кому пригодится: • в обозначениях частей нельзя использовать верхний регистр (пример с кнопкой ui_inGame2_pda_button из того же файла [ui_actor_pda] – мусор из старых версий); • части принимаются только с описанием – файлы-кусочки не подходят ни в каком виде, хотя для обычной кнопки можно указывать набор текстур и так.
  2. @naxac Так это еще в ТЧ, а в ЧН и ЗП описание с виду вполне рабочее. На всякий случай, уточняю место: [xrGame\ui\UIXmlInit.cpp] bool CUIXmlInit::Init3tButton(…). Должно получиться 4 окна CUIFrameLine – по одному на каждое состояние кнопки; или где-то дальше обработчик спотыкается, или я не понимаю, как правильно назвать части текстур.
  3. Здрасьте. [ЗП 1.6.02] Создание кнопки CUI3tButton() с тегом frame_mode=1. Судя по описанию, должна получиться кнопка с состояниями d/e/h/t и масштабированием по горизонтали через подстановку частей b/back/e (= CUIFrameLine). Создал 12 текстур-частей _d_b/back/e, _e_b/back/e, …, указал ссылку на базовое имя – вылет. Указал текстуры в описании кнопки блоками <texture_d>name_d</texture_d> в расчете на подстановку текстур b/back/e – вылет. По образу и подобию кнопки "ui_inGame2_pda_button" создал набор d/e/h/t с полными текстурами и отдельные наборы с частями, названными _E_b/back/e, _H_b/back/e, _T_b/back/e – вылет. Добавил в [configs\ui\textures_descr] описание для частей b/back/e по полным текстурам – вылет. Указал ссылку на текстуру "ui_inGame2_pda_button" – вылет. Для справки, все предполагаемые части этой текстуры даны ссылками на пустое место. Создание кнопки в обычном состоянии по полным текстурам d/e/h/t работает – скриптовая часть и ссылка на папку с текстурами точно правильные. Ошибка каждый раз одна и та же: "similar(m_tex_rect[flFirst].height(), m_tex_rect[flSecond].height())" – разная высота частей масштабируемой текстуры, хотя все части нарезаны из одной текстуры и имеют одинаковую высоту. Такое впечатление, что масштабирование текстуры кнопки не работает, и его просто забыли закомментировать в движке. Есть какая-то информация?
  4. @Баба ЯГА [bind_physic_object.script] generic_physics_binder:use_callback(obj, who)
  5. @BFG game.time() – счетчик времени в активном сейве, и этот счетчик должен обновляться только при апдейте актера, который начинается после загрузки сейва и отключения меню. Или не совсем так?
  6. Снимаю вопрос. Через pstor-запись в момент сейва и сравнение на первом апдейте разница ловится достаточно точно.
  7. Здрасьте. [ЗП 1.6.02] Проблема: при каждом повторе сейва и загрузки добавляется примерно 10 секунд реального времени к значению game.time(). Дельта постоянная – время в главном меню при создании сейва и время ожидания на экране загрузки не влияют. Пример: вывод внутреннего таймера в сообщение, сразу же сейв и загрузка – начальное время 35 653 секунд, время после загрузки – 35 665 секунд. Как с этим бороться?
  8. "Без брони". В ЧН это была модель wpn_hand_01, указанная в [actor_hud]. Нашел уже: в этот раз модель wpn_hand_05 – не знаю, где такая ссылка указана, не в костюмах точно – там у меня другие руки прописаны, и совпадений "в броне / без брони" нет.
  9. Здрасьте. Где хранится ссылка на текстуру рук без брони? В ЧН это была модель [meshes\dynamics\weapons\wpn_hand\wpn_hand_01.ogf], но в ЗП при любых изменениях такой же модели игра никак не реагирует. Пробовал менять ссылки в [actor_hud] и в [outfit_base] – аналогично.
  10. @WizziGun Тоже юмор… А как быть с аптечками, у которых только одна кость, но, скажем, аптечка на полке на уровне глаз берется только в прыжке, а на уровне рук – свободно?
  11. Прикладываю к вопросу выше – на случай, если описания недостаточно: https://drive.google.com/file/d/1Nu8XpN0a1sswM_qDat-JHCx_LLXLjgBt
  12. Здрасьте. ЗП 1.6.02: некоторые предметы невозможно поднять, если они находятся не на уровне глаз или частично перекрыты обстановкой. Пример: Юпитер, тоннель с призраком электрика и артефактом "Измененный изолятор" – из-под контейнера торчит приклад LR-300, но как вокруг ни пляши, автомат не берется. Судя по другим тайникам, при наведении на предмет должно отобразиться не только название, но и иконка, иначе предмет не возьмется. Значения take_dist и pickup_info_radius в конфигах те же, что и в ТЧ/ЧН. Было ли это "вылечено" в модах, и каким способом?
  13. Здрасьте. Видел в каком-то моде улучшенное поведение NPC в ситуации "ГГ загораживает обзор в бою": NPC не только не стрелял насквозь, как это обычно бывает, но еще и махал рукой и кричал "Отойди!". Подскажите название мода, если кто знает.
  14. @exDeMODER В базовой версии ТЧ у класса CUITrackBar всего два уникальных скриптовых метода: задать и прочитать значение, причем оба метода работают только в булевом режиме – false/true = значение 0 или > 0. Кроме того, окно CUITrackBar дает вылет, если в XML-описании нет блока <options_item entry=… /> с названием одной из указанных в [xr_3da\xr_ioc_cmd.cpp] настроек игры, и настройка реально меняется этим новым ползунком. Пример применения есть в моде "Золотой шар" под ТЧ: условный электрощиток как раз с такими ползунками и учетом положения "вкл/выкл" (X-18, колонна на входе).
  15. Здрасьте. Если this["подстановка"]() позволяет вызвать функцию по строковому имени из текущего скрипта, то для чего нужны конструкции вида this.точное_имя(), если прямой вызов по имени функции и так действует в текущем скрипте? Примеры: ЗП [utils.script] this.vector_copy_by_val() ТЧ [uilts.script] и [xr_talker.script] this.vector_copy_by_val() – две разные функции, но каждая вызывается только в своем скрипте
  16. @Jekyll Вот это не сгодится? local spawn = alife():create(…) level.client_spawn_manager():add(spawn.id, -1, fx) function fx(id, obj) … end
  17. @Colder [ui_main_menu.script], по аналогии с блоком if dik == DIK_keys.DIK_Q. Обязательно добавить проверку if level.present() – игра должна быть загружена в момент расходования предмета. Сделать применение предметов через быстрые слоты, как в ЗП, без расширенного движка невозможно – разве что добавить условие вида "если потрачен бинт, то съесть еще колбасу".
  18. @sergej5500 Для получения списка апгрейдов придется разбирать нетпакет: STATE, сразу после "condition" идет параметр s32 с количеством апгрейдов и следом таблица с названиями в порядке прокачки. Таблицу можно вытаскивать последовательным чтением вручную или через [m_netpk.script] от Артоса.
  19. В ЧН есть проверка установленного обвеса через (wpn):weapon_is_scope(), _silencer(), _grenadelauncher(). В ЗП тоже такие методы должны быть.
  20. Здрасьте. Оконный класс на базе CUIScriptWnd() + статик с текстурой для видимости. ТЧ 1.0006: перезагрузка проходит без ошибок даже при открытом окне – окно успешно удаляется методом __finalize(). ЧН 1.5.10: • перезагрузка при открытом окне приводит к вылету без лога, как будто окно теряется. • принудительное обнуление окна в net_destroy() также приводит к вылету без лога, если окно было открыто хотя бы один раз и точно было закрыто на момент перезагрузки. Что-то изменилось в методах __init() и __finalize()?
  21. @naxac Нашел перебор укрытий в [xr_surge_hide.script]: После этого как раз выполняется проверка через inside.
  22. В ЧН часто есть готовые рестрикторы – укрытия от выброса, но у них нет внешних конфигов логики. Можно ли без перебора [all.spawn] определить, что ГГ находится в рестрикторе с именем "(level)_vibros_#"?
  23. Здрасьте. Как проверить, что дождь не только идет в данный момент, но и попадает на ГГ (ГГ не находится в здании)? Версия игры любая без движковых правок.
  24. @AndreySol Где найти разобранный на файлы C++ движок ЧН? Движок ЗП тоже было бы интересно почитать.
  25. Здрасьте. Задача: создать одноименный текстовый файл при создании сейва. В [ui_save_dialog.script] можно отследить имя и создать свой файл при сейве через меню "Сохранить игру". Как сделать то же самое при вводе имени нового сейва через консоль?
×
×
  • Создать...