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

Norman Eisenherz

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

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

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

  • Дней в топе

    1
  • AMKoin

    15,544 [Подарить AMKoin]

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

  1. Привязаться к таблице в менеджере заданий: local tm = task_manager.get_random_task() local task = tm.task_info[type_parent] if task.status = "selected" then …
  2. Стоит заглянуть в [xr_effects.script] – все подобные переключатели там.
  3. В своем, в чужом, в трупе, в коробке, в границах онлайна или нет? Если у себя, то obj:condition(), где obj – ссылка на объект через секцию db.actor:object(sect) или перебором от 0 до db.actor:object_count() -1.
  4. Не соглашусь: задание "find_item" имеет дополнительную обработку "есть на сервере, но не в кармане заказчика" – надо копировать или "artefact", или "monster_part".
  5. Проверил в ТЧ, подтверждаю (стоило сразу так сделать вместо советов "может быть"). Полный список правок, если кому-то интересно: • [game_tasks_by_vendor.xml] – новый тип задания "parent_new_type" • [task_manager.ltx] – конфиг нового задания, обязательно с заголовком в начале файла • [task_manager.script] – копия строк с обработкой задания "artefact" => "new_type"
  6. Вспомнил вот… Для заданий artefact и monster_part список target_objects не заполняется и метка не создается, а возможность выдачи определяется только простыми проверками "наличие выданных заданий такого типа + отсрочка". Для нового задания с поиском обычной брони (без секции в all.spawn) должно хватить копии конфигов и скриптов задания artefact / monster_part под другим именем.
  7. [task_manager.script] register_target() выбирает подходящие объекты при движковой регистрации и добавляет их id в task_info[задача].task_objects – куда-то сюда надо копать
  8. Остается только добавить такой же флаг в какую-нибудь проверку использования оптики
  9. Что понимается под "поведением" статика? Что-то сложнее "скрыть/показать"?
  10. Перебрать сервер с проверками "существующий объект + наличие родителя + id родителя = id коробки".
  11. @Капрал Хикс Может, это подойдет:
  12. 1. Мудреный вариант: взять список [system.ltx] [info_portions] files и перебрать все указанные файлы как текст через getFS():r_open(путь):r_stringZ() с проверкой "есть/нет" по каждому info_id. 2. Ленивый вариант: добавить вывод всех инфо-поршней в консоль в actor_binder:info_callback() и "слушать" с начала новой игры. 3. Неясный вариант: в ЧН вскоре после загрузки в консоль высыпается этот самый список – можно там посмотреть, но вроде как это движковый вызов. Единственное, что можно понять из самого списка – у инфо-поршней есть фиксированные id: [0]=[global_dialogs] … [1350]=[info_up_ac_spas12].
  13. Возможно, нарушен порядок чтения/записи нетпакета ГГ. См. любые недавние изменения со ссылкой на pstor или actor_binder:save() и …load(). Может, таймеры неудачно добавлены?
  14. Да. Минимальные требования: • ссылка в [game_tasks_by_vendor.xml] под каждого заказчика (можно только заголовок task_id=type_parent, остальное скриптом, но потребуется новая игра) • значение text ~= nil (описание/метка), иначе будет вылет при создании диалога • значение target и новая проверка в check_task_props() (при старых проверках часто требуется значение определенного типа или хотя бы ~= nil)
  15. То, что повешено на худ пользователем, именно при использовании оптики не скрывается, хотя в катсценах, диалогах и т. д. скрывается и это (кроме ЗП – там всегда только вручную). В старых модах вроде "Фотографа" можно наблюдать на худе самодельные часы при использовании прицела без черной заливки снаружи.
  16. HUD скрывается при использовании оптики, даже если заткнуть ссылки в начале [xr_effects.script] – остается только править движок. Трассеры читаются из конфига патронов при запуске игры: без правок движка они либо всегда есть, либо всегда нет. Разве что скриптом добавлять к пуле движущийся партикл… Надо спрашивать кого-то, кто работает с эффектами и светом.
  17. Точка при поиске/замене – спецзнак "один любой знак": поиск находит цифру после 1 или 2 и отсекает строку. Запись для поиска точки просто как точки: find("%.") -- обход спецзнака find(".", 1, true) -- поиск всех знаков в режиме "простой текст" (1 = отсчет слева)
  18. Можно получить ссылку на онлайн-объект NPC через диалог с ним: motivator_binder:use_callback + проверка obj:alive(). После этого как раз можно читать obj:id().
  19. Может, конфиг предметов с секцией rad_sec кривой? Хотя, что там может быть, кроме другой иконки…
  20. Потестил в ТЧ и ЧН с выводом rad_sec в сообщение: код рабочий. Видимо, функции переспавна дают сбой.
  21. Прочитать случайный ключ в переменную, сделать выбор, сделать table.remove с этим ключом, повторить выбор.
  22. Передать секции в простой список в цикле gmatch, потом прочитать t[ math.random( #t ) ].
  23. Метод "убить" для онлайн-объектов требует записи жертва:kill(убийца), в противном случае не срабатывает. Если не хочется портить отношения с группировками, надо оформлять убийство NPC как суицид.
  24. @Colder 1. Совпадает ли построение читаемого конфига с тем, что показано ниже? 2. Зачем повторять чтение r_string(…), если результат уже сохранен в list? 3. Как выглядит список предметов и не проще ли парсить его обратным шаблоном "всё, кроме запятых и пробелов" – "[^,%s]+"? 4. Логи, всё выводить в логи: что прочиталось в list, какие фрагменты текста ловит парсер и т. д.

AMK-Team.ru

×
×
  • Создать...