Изменения:
1) treasure_manager.script

fill_treasure(k) содержит прежний код создания предметов (ammo через se_respawn.create_ammo, остальное через alife():create с parent = ящик) и больше нигде не вызывается.
fill_all() проходит по всем тайникам и заполняет их. В конце ставит флаг treasures_filled в pstor актёра, а при повторном вызове флаг проверяется и функция выходит сразу.
Флаг сохраняется штатным pstor_save_all, формат сейва тайников не менялся.
reveal_treasure(k) только показывает новость в ПДА и ставит метку на ящик (map_add_object_spot_ser) и больше ничего не создаёт.
give_treasure остался обёрткой над reveal_treasure, потому что его зовут escape_dialog.fox_pay_money и dialog_manager.
use и check теперь вызывают reveal_treasure.
В treasure_empty добавлено done = true: если игрок опустошил ящик раньше, чем пришла наводка, метка на пустой ящик не повесится. Снятие метки при опустошении работает как раньше.

2) bind_stalker.script: в actor_binder:update, в блоке if self.bCheckStart (он срабатывает при каждом net_spawn, в том числе при смене уровня),
добавлена одна строка treasure_manager.get_treasure_manager():fill_all(). Повторных заполнений не будет из-за флага.