View/Edit #13:@recreate

Switch to edit mode.

Name(s): @recreate
1:  "@recreate <object> as <parent-class> named [name:]alias,alias,..."
2:  "  effectively recycles and creates <object> all over again."
3:  set_task_perms(player)
4:  named = "named" in args || "called" in args || "nomme" in args
5:  as = prepstr in args
6:  if (named <= as + 1 || named == length(args))
7:    player:tell({tostr("Usage:  ", verb, " &lt;object&gt; as &lt;parent-class&gt; named [name:]alias,...,alias"), "", "where &lt;parent-class&gt; is one of the standard classes ($note, $letter, $thing, or $container) or an object number (e.g., #999), or the name of some object in the current room.  The [name:]alias... specification is as in @create."})
8:    return
9:  elseif ($command_utils:object_match_failed(dobj = player:my_match_object(dobjstr), dobjstr))
10:   return
11: elseif (is_player(dobj))
12:   player:tell("You really *don't* want to do that!")
13:   return
14: endif
15: parentstr = $string_utils:from_list(args[as + 1..named - 1], " ")
16: namestr = $string_utils:from_list(args[named + 1..length(args)], " ")
17: if (parentstr[1] == "$")
18:   try
19:     parent = #0.(parentstr[2..$])
20:   except (E_PROPNF)
21:     return player:tell(tostr("\"", parentstr, "\" does not name an object."))
22:   endtry
23: else
24:   parent = player:my_match_object(parentstr)
25:   if ($command_utils:object_match_failed(parent, parentstr))
26:     return
27:   endif
28: endif
29: if ($recycler:valid(dobj) && $perm_utils:controls(player, dobj) && !$command_utils:yes_or_no(tostr("Warning: ", dobj, " is not a garbage object, but an object you own (", dobj.name, "). Destroy and recreate anyway")))
30:   return
31: endif
32: try
33:   e = $building_utils:recreate(dobj, parent)
34: except v (ANY)
35:   player:tell(verb, " failed: ", v[1])
36:   player:tell("Object: ", dobj, ".  Parent: ", parent, ".")
37:   player:tell("Reason: ", v[2])
38:   return
39: endtry
40: if (dobj:isa($physical))
41:   dobj:moveto(player)
42: endif
43: $building_utils:set_names(dobj, namestr)
44: if ((other_names = setremove(dobj.aliases, dobj.name)) != {})
45:   aka = " (aka " + $string_utils:english_list(other_names) + ")"
46: else
47:   aka = ""
48: endif
49: player:tell("Object number ", dobj, " is now ", dobj.name, aka, " with parent ", $su:nn(parent), ".")
50: "Last modified by Dax (#789) on Thu Nov  8 11:38:30 2001 MST."

Verb arguments: any as any
Verb perms: Readable NOT-Debug
Verb owned by: Slacker (#55)

You are not logged in.

[home | help | who | search | setup | code]