dennis_chikin (dennis_chikin) wrote,
dennis_chikin
dennis_chikin

О представителях малых народов крайнего севера

"Переписываем традиционно:
local on_take_t, on_take_any, on_take_n = {}, {}, 0

function add_on_take( f, sect ) -- ( функция, nil ) - для любых секций, либо ( f, секция )
if sect then
local t = on_take_t[sect]
if t then table_insert( t, f )
else on_take_t[sect] = { f }
end
else on_take_n = on_take_n + 1; on_take_any[on_take_n] = f
end
end


function actor_binder:on_item_take( item )
-- log( "info", "on_item_take" )
ltasks_proceed()

for i = 1, on_take_n do on_take_any[i]( item ) end
local t = on_take_t[item:section()]
if t then
for i = 1, #t do t[i]( item ) end
end

if level.map_has_object_spot( item:id(), "red_location" ) ~= 0 then
level.map_remove_object_spot( item:id(), "red_location" )
end
-- log( "info", "on_item_take, done" )
end
- здесь речь идет о замене простыни в 100500 if ... then ...

Комментарий:
"А толку, если такая таблица актуальна только при старте игры по сути? Тогда уж на дропе убирай из таблицы выкинутую вещь. Впрочем, чем не нравится получение предмета через actor:object(section) (или через ту же итерацию по инвентарю) - я не знаю."

Вот как знал, написав в начале темы: "все равно это читать ни кто не будет, так хоть душу отведу."
Tags: некромантия, удивительное
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 4 comments