Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
makdm, это, конечно, вариант, но я отчетливо помню, что в прошлом моде у меня с какого-то момента начинали крашиться сейвы именно после того, как я начинал вешать поршни на отряды, поэтому я с осторожностью отношусь. Впрочем, можно пока и так, наверное.
А, и да. Где-то в момент ковыряния всей этой логики (точнее не могу сказать, т.к. делал всё большим блоком) при покидании игры и локации начала выскакивать ошибка
Expression : !m_error_code Function : raii_guard::~raii_guard File : ..\xrServerEntities\script_storage.cpp Line : 748 Description : ....t.a.l.k.e.r. Зов Припяти\gamedata\scripts\_g.script:88: bad argument #2 to 'format' (string expected, got nil)
88 строчка в моем _g.script: log(string.format(fmt,...))
Есть какой-то вариант, как получить более внятную инфу, на каком моменте всё идёт не так?
svi, лично я так поступил: в этом же скрипте в function abort в строке
Код
--error_log(reason)
убрал "--". Логи стали более подробные при вылетах (помогает при создании логики), но должен сказать, что некоторые "безобидные" баги превратились в вылеты (возможно поэтому в оригинале это выключено).
Сообщение отредактировал Prostomod - Вторник, 10.12.2019, 20:24
Народ! Наблюдаю такой баг впервые. Не пойму в чём проблема. Посадил торговца, всё работает без проблем, спавниться, торгует, по логике отрабатывает как нужно, всё отлично. Но при спавне почему то смарт ковер разворачивается на 180 градусов. Сама логика поведения простейшая, торговец сидит на стуле, при подходе к окну торговли он встаёт и подходщит к окну, когда ГГ уходит он возвращается на стул. Баг в том что он спавнится не на стул а сидит на пустоте лицом к стулу, тоесть по оси провёрнут на 180 градусов. Подхожу к окну он встаёт и подходит, торгует всё нормально. после этого нормально работает логика, ГГ отходит и торговец возвращается на стул, и садится нормально как и должно быть... В чём баг, почему при спавне он так разворачивается? может кто сталкивался?
Policai, Сталкивались, знаем! Первая причина: Оригинальные анимации для анимпоинтов у GSC иногда развернуты на 180 градусов относительно ориентации смартковеров. Пример такого - самартковер Кардана на Скадовске. При этом НПС никогда не сядет по ориентации правильно. Решение - разворот смартковера, для правильной ориентации анимаций. Вторая причина: Стул НПС (или другой объект в непосредственной близости) - динамический объект. Ориентация смартковера и анимаций верная. В этом случае взаимодействие НПС с динамическим объектом приводит к подобным багам. При этом НПС может садиться рядом со стулом, на стул но развернувшись под углом 180, не садиться вообще или ... сесть нормально все зависит от располажения планет, мышки на коврике и подключения наушников. Решение - использование в окрестности смартковеров исключительно статических объектов.
Цитатаsvi ()
попробовал, нашёл пару ошибок в смарт-террейнах, но конкретно данный вылет выдаёт всё то же.
Проблема в том, что сообщения выдаваемые при этом в лог определяются тем, что прописано в функцию abort скриптом инициировавший аварийное завершение выполнения. Не все скрипты не во всех случаях выдают такие аварийные сообщения. А это значит, что вам самому придется вспомнить все что вы накрутили в геймдате, досконально перепроверить все правки и найти таким образом причину, или просто забить на вылет при закрытии игры, надеясь, что например сейвы при этом у вас не ломаються.
Сообщение отредактировал denis2000 - Среда, 11.12.2019, 10:01
Там нет рядом динамических обьектов, стул статика обычная. Смущает что он развёрнут только при первом спавне, потом то, достаточно отработать по логике хоть раз, он садится нормально, на своё место. И что самое подозрительное, такое впервые вижу, стандартная анимация ЗП, sit_normal, она много где используется у меня в моде, но такого нигде нет. Думаю может это связано с точкой телепорта? Смарт относительно далеко от точки, за пределами здания, и если сохраниться в этом месте и выйти из игры. То при воходе получится что торговец будет идти от смарта на работу. Что не есть красиво..)) Поэтому на месте ковера у меня стоит поинт, точка спавна для телепорта. И в логике приписана эта точка при спавне торговца, чтоб он сразу появлялся на месте работы... Вернее не в логике а в squad_descr_локация, точка эта поинт куда он встаёт при разговоре...
А вот так делать не стоит, если точка спавна (или одной из работ этого НПС) стоит внутри смартковера, то НПС может тупить при занятии этого смартковера при переходе с этой точки. Хотя это и редкое явление. Попробуйте вынести спавн поинт за пределы смартковера. Также проверьте АИ-сетку в этом месте и точность установки смартковера на сетку.
Сообщение отредактировал denis2000 - Среда, 11.12.2019, 11:09
В том то и дело, у меня у обычных НПС, со стандартной логикой а не многосекционной, сделанных на ковере, такие точки стоят, и телепорт прописан в логиках НПС, именно чтоб при сохранении и загрузке игры НПС сразу спавнились на точку работы а не шли на неё из смарта, но так как там сквады по нескольку НПС, одну точку общую не поставишь и не прпопишешь в squad_descr_локация , они спавнятся толпой в эту точку и стоят толкаются, поэтому у каждого отдельная и прописана в логике. И нигде нет проблем, а торгашу я эту точку не стал ставить и указал точку спавна из второй секции логики... и сразу этот баг вылез. Сейчас подумалось, может переделать логику на стартовую секцию на вей точки, а уж второй сделать секцию анимпоинта. может это исправить баг?
Сообщение отредактировал Policai - Среда, 11.12.2019, 11:18
А это значит, что вам самому придется вспомнить все что вы накрутили в геймдате, досконально перепроверить все правки и найти таким образом причину, или просто забить на вылет при закрытии игры, надеясь, что например сейвы при этом у вас не ломаються.
Как ни странно, проблему нашёл. Проблема была - внезапно - в секции торговли одного из торговцев, которую я недавно правил. Не очень понял, что именно там не так, временно поставил старую затычку. Но факт есть факт - это мешало выйти с локации без вылетов и использовать торговцу анимпоинт.
Народ! Подскажите, по какому принципу ведётся подсчёт статистики найденых тайников в ЗП? Интересует сама суть, все тайники для статистики нужно регистрировать где то? или достаточно присутствия в имени inventory_box?
Policai, В оригинальном ЗП тайники в которых предметы связаны с inventory_box не учитываются в менеджере тайников. В нем учитываются предметы лежащие открыто. Для этого у каждого предмета из тайника в кастомдате прописано к какому тайнику он относиться:
Код
[secret] name = zat_hiding_place_1
Также все тайники и все предметы в них описаны в конфигурационных файлах менеджера тайников secret_***.ltx (головной файл secrets.ltx) Эти же файлы указаны в рестрикторах тайников которые накрывают место тайника:
Сам менеджер тайников treasure_manager.script отслеживает поднятие предметов по меткам secret из кастомдаты и согласно конфигу принимает решение все ли предметы из тайника поднял ГГ. Если подняты все предметы то информация о найденном тайнике отправляется в xr_statistic.script. А уж при отображении количества найденных тайников в ПДА информация берется именно из xr_statistic.script.
Сообщение отредактировал denis2000 - Четверг, 12.12.2019, 11:31
А есть вариант принудительно заставить xr_statistic.script считать найденые inventory_box? У меня все тайники имеют имя ПРЕФИКС ЛОКИ_inventory_box_хххх, в общей сложности на всех локах примерно 350+ тайников. накрывать каждый спейсом как то не франтит... Я вроде начал это делать, но я спейсы хотел ставить на предмет проверки что ГГ был возле тайника, и предмет из тайника только в этом случае появится в инвентаре. Но потом отказался от этой идеи. После открытия тайника на нём остаётся метка на карте. Скрипты писал Дима (makdm). В логике каждого тайника в кастом дате