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

Norman Eisenherz

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

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

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

  • Дней в топе

    1
  • AMKoin

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

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

  1. [task_manager.script] register_target() выбирает подходящие объекты при движковой регистрации и добавляет их id в task_info[задача].task_objects – куда-то сюда надо копать
  2. Остается только добавить такой же флаг в какую-нибудь проверку использования оптики
  3. Что понимается под "поведением" статика? Что-то сложнее "скрыть/показать"?
  4. Перебрать сервер с проверками "существующий объект + наличие родителя + id родителя = id коробки".
  5. @Капрал Хикс Может, это подойдет:
  6. 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].
  7. Возможно, нарушен порядок чтения/записи нетпакета ГГ. См. любые недавние изменения со ссылкой на pstor или actor_binder:save() и …load(). Может, таймеры неудачно добавлены?
  8. Да. Минимальные требования: • ссылка в [game_tasks_by_vendor.xml] под каждого заказчика (можно только заголовок task_id=type_parent, остальное скриптом, но потребуется новая игра) • значение text ~= nil (описание/метка), иначе будет вылет при создании диалога • значение target и новая проверка в check_task_props() (при старых проверках часто требуется значение определенного типа или хотя бы ~= nil)
  9. То, что повешено на худ пользователем, именно при использовании оптики не скрывается, хотя в катсценах, диалогах и т. д. скрывается и это (кроме ЗП – там всегда только вручную). В старых модах вроде "Фотографа" можно наблюдать на худе самодельные часы при использовании прицела без черной заливки снаружи.
  10. HUD скрывается при использовании оптики, даже если заткнуть ссылки в начале [xr_effects.script] – остается только править движок. Трассеры читаются из конфига патронов при запуске игры: без правок движка они либо всегда есть, либо всегда нет. Разве что скриптом добавлять к пуле движущийся партикл… Надо спрашивать кого-то, кто работает с эффектами и светом.
  11. Точка при поиске/замене – спецзнак "один любой знак": поиск находит цифру после 1 или 2 и отсекает строку. Запись для поиска точки просто как точки: find("%.") -- обход спецзнака find(".", 1, true) -- поиск всех знаков в режиме "простой текст" (1 = отсчет слева)
  12. Можно получить ссылку на онлайн-объект NPC через диалог с ним: motivator_binder:use_callback + проверка obj:alive(). После этого как раз можно читать obj:id().
  13. Может, конфиг предметов с секцией rad_sec кривой? Хотя, что там может быть, кроме другой иконки…
  14. Потестил в ТЧ и ЧН с выводом rad_sec в сообщение: код рабочий. Видимо, функции переспавна дают сбой.
  15. Прочитать случайный ключ в переменную, сделать выбор, сделать table.remove с этим ключом, повторить выбор.
  16. Передать секции в простой список в цикле gmatch, потом прочитать t[ math.random( #t ) ].
  17. Метод "убить" для онлайн-объектов требует записи жертва:kill(убийца), в противном случае не срабатывает. Если не хочется портить отношения с группировками, надо оформлять убийство NPC как суицид.
  18. @Colder 1. Совпадает ли построение читаемого конфига с тем, что показано ниже? 2. Зачем повторять чтение r_string(…), если результат уже сохранен в list? 3. Как выглядит список предметов и не проще ли парсить его обратным шаблоном "всё, кроме запятых и пробелов" – "[^,%s]+"? 4. Логи, всё выводить в логи: что прочиталось в list, какие фрагменты текста ловит парсер и т. д.
  19. @Купер Метод тыка. При выходе за 232 знака случается малопонятный вылет "error handler is invoked!" со ссылкой на движок, а именно на строку [xrCore\xrDebugNew.cpp] line = __LINE__ – видимо, здесь зарыт тип данных "строка 256 байт минус левая пятка".
  20. @bsanek628 Максимум 232 знака при прямом вводе текста в диалог. По ссылке string_id – сколько угодно. @Colder Лучше внедрить свой обработчик в [treasure_manager.script], которому уже известны все тайники, отсеять те, что имеют статус "выдано" (отспавнен лут) и где-то в self.treasure_info[id].items найти нужную секцию предмета.
  21. Пока нет привычки к прямому "переводу", стоит писать словами, что этот скрипт должен делать при каждом событии взаимодействия с коробкой, и пошагово сравнивать с кодом – вслепую можно тыкаться очень долго.
  22. Как минимум, это не оригинал, а OGSR, и в OGSR вполне может быть готовая обертка для получения суммарного веса. Например, get_total_weight() в классе game_object – надо спрашивать тех, кто работает c платформой OGSR. В остальном, выводить вес в сообщения/лог при всех действиях с коробкой и ловить момент обнуления. Возможно, не хватает проверки веса предметов в use_callback. local cur_box_weight = 0 как-то используется? В коде только отдельная переменная self.cur_box_weight.
  23. Хм… это нормально, что модель пропадает совсем?
  24. Не могу найти, как называется модель этой палочки на мине…
×
×
  • Создать...