| SYNOPSIS |
| object * clones() |
| object * clones(int what) |
| object * clones(string|object obj [, int what]) |
| |
| DESCRIPTION |
| The efuns returns an array with all clones of a certain blueprint. |
| The array is subject to the usual runtime limits. |
| |
| If <obj> is given, all clones of the blueprint of <obj> (which |
| may be <obj> itself) are returned, otherwise all clones of the |
| current object resp. of the current object's blueprint. If <obj> |
| is given as string, it must name an existing object. |
| |
| <what> selects how to treat clones made from earlier versions |
| of the blueprint: |
| == 0: (default) return the clones of the current blueprint only. |
| == 1: return the clones of the previous blueprints only. |
| == 2: return all clones of the blueprint. |
| |
| Note: this efun is computationally expensive. |
| |
| If the driver is compiled with DYNAMIC_COSTS, the cost of this |
| efun is proportional to the number of objects in the game. |
| |
| EXAMPLES |
| object o, p; |
| o = clone_object("/std/thing"); /* or "std/thing" in COMPAT mode */ |
| destruct(find_object("/std/thing")); |
| p = clone_object("/std/thing"); |
| |
| clones("/std/thing") --> returns ({ p }) |
| clones("/std/thing", 0) --> returns ({ p }) |
| clones("/std/thing", 1) --> returns ({ o }) |
| clones("/std/thing", 2) --> returns ({ o, p }) |
| |
| HISTORY |
| Introduced in LDMud 3.2.8. |
| LDMud 3.2.9 added the dynamic cost. |
| |
| SEE ALSO |
| blueprint(E), clone_object(E), clonep(E) |