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

Скриптование


Svoboда

Рекомендуемые сообщения

Подскажите плз, что отвечает за невыпадение оружия из рук при убийстве непися, т.е. когда оно у него в руках остается и не берется с трупа? Скрипты это или движок - не имеет значения, хотя бы намекните где копать. Перестали вываливаться с мобов стволы и я в непонятках...

 

После некоторых действий и в движке и в скриптах. Сразу я этого не заметил, а теперь не могу разобраться где вылез косяк.

Изменено пользователем Zagolski

Поделиться этим сообщением


Ссылка на сообщение
Только что, Zagolski сказал:

Подскажите плз, что отвечает за невыпадение оружия из рук при убийстве непися, т.е. когда оно у него в руках остается и не берется с трупа? Скрипты это или движок - не имеет значения, хотя бы намекните где копать. Перестали вываливаться с мобов стволы и я в непонятках...

Как я понял, никто не знает. Ну и ладно.

Я с этим разобрался, только опять не понял, где конкретно. В одном из stalker_...cpp файлов, то ли stalker_combat_planner.cpp, то ли в stalker_combat_actions.cpp. Точно проверять - перекомпиляцией заниматься не охота.

До этого я переделывал инициализацию слотов на ЗП формат, так вот в нескольких этих файлах старая схема их получения осталась. Из-за этого оружие не выпадало из рук, а оставалсь прилепленным. Но в будущем, если подобное выпадение лута кто захочет сделать - копайте там.

Изменено пользователем Zagolski

Поделиться этим сообщением


Ссылка на сообщение

У меня давненько есть идея сделать всем неписям изначально базовый визуал - в свитере или вроде того, без броника. В профиле вместе с оружием спавнится неписи броник, он его одевает. Причем визуал непися зависит только от конкретного броника (он играет основную роль), который у него имеется в инвентаре. Соответственно, этот броник у него и выпадает. Это не столько для выпадения броников (конкретно это делается гораздо проще по вышеприведенному примеру), а вообще глобально на подобный способ переделать инициализацию визуалов НПС и их лута, броники в том числе.

 

А вообще выпадение броников с трупов - дисбаланс, имхо. Только это меня пока и останавливает от воплощения приведенной выше затеи. Это так, пока мысли вслух.

Изменено пользователем Zagolski

Поделиться этим сообщением


Ссылка на сообщение

Да, есть там такие моменты. И печально наблюдать, когда кто-то из начинающих мододелов начинает и у себя использовать подобные "механизмы", до этого набравшись навыков из ванильного кода.

Поделиться этим сообщением


Ссылка на сообщение

А из-за чего и где неписю может добавляться во входные рестрикторы все аномалии на уровне, кто-нибудь может подсказать? Не всем неписям, только одному (пока одного выявил). Не могу никак разобраться, с какого аномалии ему добавляются. Другим как и положено - обычно по одному рестриктору, накрывающий смарт. В итоге у этого перца список создается длиной больше 4096 байт и игра падает.

Добавляются они в gulag:set_restrictions через add_restrictions, но откуда они взялись у этого нпс?

Поделиться этим сообщением


Ссылка на сообщение

Выявил, что добавляются в amk_anoms.syncronize() (амк-шные динамические аномалии), оттуда корни растут. И почему-то одному неписю, который ничем непримечателен. Длиннющая строка всех аномалий записывается ему в рестрикторы. Ошибка неординарная, но может у кого было подобное. Не могу понять, откуда они тащатся и почему только ему одному.

Изменено пользователем Zagolski

Поделиться этим сообщением


Ссылка на сообщение

Были мысли об этом, но тогда бы аномалии записывались и другим неписям. Но другим не пишутся, записываются только нужные рестрикторы. Я этого товарища везде перепроверил, в т.ч. по цепочке вызовов к amk_anoms.syncronize(), не нашел связей.

Изменено пользователем Zagolski

Поделиться этим сообщением


Ссылка на сообщение

Отбой, проблему решил.

 

Аномалии не должны сразу все записываться в рестиркторы в амк-шной схеме. Это висит на медленном апдейте, запись происходит постепенно, чаще по две-три штуки, тех аномалий, которые ближайшие к неписю. Старые вычищаются, новые добавляются. А у меня при заходе на уровень происходила первая одиночная запись всех аномалий в игре неписям, чего быть не должно. Ну и переполнение буфера с последствиями. Вызов шел из blowout_scheme.script

Изменено пользователем Zagolski

Поделиться этим сообщением


Ссылка на сообщение

Как ты там собрался что-то исправлять? Ф-ции play_hud_animation не существует, о чем говорит вылет, да и не было никогда.

Поделиться этим сообщением


Ссылка на сообщение

А зачем заспавненному неписю вообще устанавливать story_id, зачем он ему нужен?

 

3 часа назад, dsh сказал:

что движок его зарегистрирует только при следующей загрузке сейва

Вроде даже при перезапуске игры.

Поделиться этим сообщением


Ссылка на сообщение
В 03.11.2018 в 12:39, dsh сказал:

Например, что бы его потом по этому story_id найти и что нибудь с ним сделать. Или, что бы движок не удалил его трупик, если он будет долго лежать. А может ещё для чего, кто знает.

Это все элементарно делается поиском по имени объекта, никаких story_id для этого городить не нужно. Правда, это касается объектов заспавненных аллспавном. В ТЧ даже ф-ция для этого есть: alife():object("name")

В любом случае присваивание story_id нет-пакетом, когда он вступает в силу только при перезагрузке - не очень корректный метод, наверное, даже больше косячный.

Поделиться этим сообщением


Ссылка на сообщение

Неужели остались еще мазохисты писать table.geth вместо короткого #

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...