@verb #13:"@lineage @lineage!" any none none rdo #8084 @program #13:"@lineage @lineage!" any none none "@lineage [obj]" "@lineage! [obj]" "Shows not only all children of object but all of thier children too, and those children's children, and so on, etc." "! Shows non-fertile objects as well." if (!argstr) return player:Tell("Syntax: @lineage <obj>") endif if ($cmd_utils:object_match_failed(dobj = player:my_match_object(dobjstr), dobjstr)) return elseif (!children(dobj)) return player:Tell($su:nn(dobj), " has no kids.") endif {ol, nl, go} = {{dobj}, {}, 1} while (go) it = ol[1] ol = listdelete(ol, 1) cl = children(it) ol = {@ol, @cl} w = it in nl if (w) {beg, end} = {nl[1..w], nl[w + 1..length(nl)]} typeof(beg) != LIST ? beg = {beg} | 0 typeof(end) != LIST ? end = {end} | 0 cl ? nl = {@beg, "+", @cl, "-", @end} | 0 else cl ? nl = {@nl, it, "+", @cl, "-"} | (nl = {@nl, it}) endif ol ? 1 | (go = 0) ticks_left() < 1000 || seconds_left() < 2 ? suspend(0) | 0 endwhile prefix = "" for item in (nl) if (item == "+") prefix = prefix + ".." elseif (item == "-") prefix = prefix[1..length(prefix) - 2] else if (index(verb, "!") || children(item)) player:tell(prefix, item, " (", `item:title() ! ANY => item.name', ")") endif endif ticks_left() < 1000 || seconds_left() < 2 ? suspend(0) | 0 endfor "Merlinita@ShadowsInTyme" "Eve (#2633)@SNM" "Angelina@dtdream" "Last modified by Dax (#789) on Thu Nov 8 11:53:52 2001 MST." .