abramcumner 1 141 Опубликовано 11 Ноября 2014 local sect = item:section() -- log( "info", "on_item_lost: %s", sect ) local id = item:id() if inv_used[id] then inv_used[id] = nil -- использован -- log( "info", "on_item_lost: %s, used", sect ) else local obj = sim:object( id ) if obj then if ( obj.parent_id or 65535 ) == 65535 then -- выброшен -- log( "info", "on_item_lost: %s, drop", sect ) for i = 1, on_drop_n do on_drop_t.any[i]( item ) end if on_drop_t[sect] then for i, f in ipairs( on_drop_t[sect] ) do f( item ) end end -- else log( "info", "on_item_lost: %s, new parent: %s", sect, obj.parent_id ) end -- else log( "info", "on_item_lost: %s, deleted", sect ) end endКод все же лучше давать в псевдо-коде. Тогда предыдущий кусок будет гораздо понятней if item_used(item) then return end if item_released(item) then signals.on_item_release(item) elseif item_has_parent(item) then signals.on_transfer_item(item) else signals.on_drop_item_to_ground(item) end Еще в примере описка походу: on_drop_t.any( item ) endИ в одном случае: for i, f in ipairs( on_drop_t[sect] ) do f( item ) end а в другом: local t = on_take_t[item:section()] if t then for i = 1, #t do t[i]( item ) end Поделиться этим сообщением Ссылка на сообщение