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

Norman Eisenherz

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

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

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

  • Дней в топе

    1
  • AMKoin

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

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

  1. 1. Надо привязаться к yes_phrase; действие "give_task" уже ссылается на нее – свое действие с проверкой ставить рядом. 2. Сообщение выдается при передаче предметов через обертку dialogs.relocate_item_section(…), которая ссылается на news_manager.script.
  2. AddAction + yes_phrase_id + task_id аналогично тому, что описано выше, если это циклический квест. Edit: даже проще – если заголовок конфига известен заранее, достаточно добавить в тот же CRandomTask:init_task_dialog проверку if v.name == "tm_find_artefact_1" then … yes_phrase:AddAction(…)
  3. Проверил таблицу: данные точно заполняются, причем ключи phrase_id, как и в обработчике action, являются текстом – не было ли при сверке перевода в число?
  4. 1. В обработчик action по умолчанию передается 4 аргумента: speaker1, speaker2, dialog_id, phrase_id (obj, obj, str, str) – последнее значение для фразы с описанием будет равно desc_phrase_id. 2. Порядковые номера фраз в CRandomTask:__init() генерируются подряд: yes_phrase_id = desc_phrase_id +1. 3. Есть готовая таблица self.task_id_by_yes_phrase_id – из нее и получить id.
  5. Если я правильно понял, это значение task_info.id.complex_type, которое для цикличек выглядит как type_parent. Пример: id = barmen_kill_stalker_5 complex_type = kill_stalker_barman
  6. Возможно, стоит указать путь от папки [characters_voice\], а не от папки [sounds\]
  7. В CRandomTask:select_task(…) можно добавить свой тип выбора из заданий, готовых к выдаче: for k, v in pairs(task_table) do if v:check_target(obj, faction) then if type == "bring_item" then (свой обработчик)
  8. 1. В системном конфиге нет ссылок на апгрейды, хотя их копии вставлены в конфиги оружия – по аналогии с [inventory_upgrades.script], стоит читать общий файл [item_upgrades.ltx]. 2. Для поиска параметра nightvision_sect надо не подставлять весь список up_list, а перебирать отдельные секции из него.
  9. @Juk_Bers0vik Уточняю: не должно быть пропусков в индексах. Значения scheme_index после этого апгрейда (по идее, всего одно, для смены калибра) исправлены?
  10. Получить всю таблицу из нетпакета, сравнить "есть/нет" по имени секции нужного апгрейда… В чем именно затык?
  11. В схеме не должно быть пустых позиций: если удаляется апгрейд "строка 3, столбец 2", следующие апгрейды надо сместить левее и выше.
  12. Подождите… Ссылка на конфиг для окна MessageBoxEx, которое выдается при переходе, указана только в движке (xr_3da\xrGame\UIGameSP.cpp) – чем поможет добавление нового типа? Или требуется просто отдельное похожее окно для своих целей?
  13. Если разобраться, то последний файл не нужен – в оригинале схема "ссылка на окно со ссылкой на текстуру", хотя можно указать все текстуры напрямую (и заполнение слева/справа одной ссылкой, а не двумя). Пример оформления в [scopes_16.xml]:
  14. @Labadal 1. Варианты наполнения таких окон строго фиксированные, и на уровне конфигов текст поменять невозможно. Окно ловится через level.main_input_receiver() исключением всех других вариантов (инвентарь, КПК, торговля, обыск, …), но даже так можно поменять только основной текст. 2. См. nonscript_usable: поставить false, вывести свое окно на callback.use_object и в нем сделать подобие диалога (например, через ScrollView и постепенное добавление вложенных окон-реплик).
  15. @Juk_Bers0vik Черная или синяя мазня? В консоли не пишет "не найдена текстура (имя)"?
  16. В ТЧ task_num = 0 – само задание, 1 и дальше – видимые задачи.
  17. @imcrazyhoudini Переход в секцию nil означает "вернуть управление движку и больше не просить". Получается логика с эффектом "проблеск сознания", и работать она будет один цикл.
  18. Для привязки достаточно обернуть указанные действия в функцию и вызывать ее по необходимости – можно из логики того же рестриктора: on_actor_inside = … %=info_check% [xr_effects.script] function info_check() local tm = task_manager.get_random_task() local task = tm.task_info[type_parent] if task.status = "selected" then … end Требуется только подставить заголовок нужной задачи (artefact_wolf какой-нибудь) и конечное действие.
  19. 1. Прошлый ответ не подошел или был пропущен? https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#comment-1480857 2. Статьи выдаются только через инфо-поршни – их и проверять. 2.1. Статья не является обязательной частью описания квеста.
  20. Norman Eisenherz

    Новая жизнь форума

    1. В плане грамотности стоит исправить древние плашки о защите русского языка, если они не сохранены как музейные экспонаты с подписью "ирония". 2. По-возможности, перенести пространные рассуждения и ковырялки из "Справочника по функциям и классам" в профильные темы. И ссылки проверить – как минимум, sound_object никуда не ведет.
  21. Если речь о выводе активной задачи, то bind scores kклавиша через консоль или напрямую в [user.ltx]. Текст итоговой команды можно увидеть? Ради эксперимента привязал на F7. Текст вот такой: bind scores kf7. Похоже?
  22. Не сразу заметил, чей биндер: на обычном движке для ГГ не обсчитывается callback.hit – только callback.death.
  23. Входящий урон – amount, который в последующей части скрипта никак не задействован
  24. [utils.script] function cfg_get_string(char_ini, section, field, object, mandatory, gulag_name, default_val) – значение применяется, если группировка не указана
  25. Иконка FN2K из дефолтного файла [icon_all_weapons.dds] не подойдет?
×
×
  • Создать...