В общем, поковырялся в mp_ranks.ltx и да, приоритет выбора оружия нпц задаётся именно там. Как я понял, всё оружие делится по категориям, которые в файле обозначаются как rank_0, rank_1 и т.д. Так вот, в каждой категории есть строка available_items, в которой через запятую указаны оружия соответствующей категории. Если нпц держит в руках оружие первой категории, то он не станет подбирать оружие из этой же, подбирается оружие только более высокой категории. Возвращаясь к моему примеру с Бесом, его АКМ-74/2У «Спецназ» находится в категории rank_1, в которой так же находится и Обокан, именно поэтому Бес не выбрасывал своё оружие в обмен на него, а вот уже обычный АКМ-74/2У находится в категории rank_0, и сталкеры, которые вооружены им выбросят его взамен Обокана, т.к. он находится в более высокой категории. Соответственно, если убрать Обокан из категории rank_1 и добавить его в категорию rank_2, то тогда уже Бес отдаст свой автомат в обмен на него, ровно так же, как если убрать АКМ-74/2У «Спецназ» из категории rank_1 и добавить его в rank_0.
Но если с рангами оружия теперь понятно, то где указана зависимость подбираемого оружия, от типа патронов, который имеется у нпц? Ведь если у нпц в инвентаре нет соответствующих патронов, то он не станет подбирать оружие более высокой категории. И такая же ситуация с износом оружия, нпц не станет подбирать оружее высшей категории и даже если у него в инвентаре уже имеется нужный патрон если подбираемое оружие изношено.