Перейти к основному содержимому

Пытаюсь в Anomaly вернуть открытие инвентаря при лутании мутантов, нашел коллбэк...

Вопрос

Пытаюсь в Anomaly вернуть открытие инвентаря при лутании мутантов, нашел коллбэк который открывает меню разделки

Ответ

Для решения этой проблемы, вы можете изменить вызов функции `start` на `ui_inventory.start`. Однако это приведет к тому, что проверка `IsInvbox` не будет проходить успешно. Чтобы открыть инвентарь и позволить игроку взаимодействовать с предметами, вам нужно создать новый коллбэк или изменить существующий таким образом, чтобы он корректно обрабатывал функции `ui_inventory`. Вот пример кода:

```lua
local function monster_on_actor_use_callback ( obj , who )
-- Open mutant loot UI
-- Return if mutant is already looted
local looted = se_load_var ( obj : id (), obj : name (), "looted" )
if ( looted ) then return end

-- This is important so NPCs don't try to loot the corpse the player is looting
if ( obj : clsid () == clsid . crow ) then
save_var ( obj , "looted" , true )
else
se_save_var ( obj : id (), obj : name (), "looted" , true )
end

xr_corpse_detection . set_valuable_loot ( obj : id (), false )

-- if mutant corpse is left for long time, body is decayed
local st = db . storage [ obj : id ()]
if ( st and st . death_time and game . get_game_time (): diffSec ( st . death_time ) > MutantLootDecayTime ) then
actor_menu . set_msg ( 1 , game . translate_string ( "st_body_decayed" ), 4 )
else
-- Open inventory instead of starting the loot UI
ui_inventory.start()
end
end```
Этот код откроет инвентарь и позволит игроку взаимодействовать с предметами, но он не будет открывать меню разделки. Для полной реализации функционала вам может потребоваться дополнительное программирование.