-Upgrading LambdaCore to 1.8.0-
This fixes $verb_editor:parse_invoke so you won't get nasty tracebacks
when trying to @edit verbs.
You need to add some of the other $code_utils verbs, also.
@program $verb_editor:parse_invoke
":parse_invoke(string,v)";
" string is the commandline string to parse to obtain the obj:verb to edit";
" v is the actual command verb used to invoke the editor";
" => {object, verbname, verb_code} or error";
vref = $string_utils:words(args[1]);
if (!vref || !(spec = $code_utils:parse_verbref(vref[1])))
player:tell("Usage: ", args[2], " object:verb");
return;
endif
if (argspec = listdelete(vref, 1))
if (typeof(pas = $code_utils:parse_argspec(@argspec)) == LIST)
if (pas[2])
player:tell("I don't understand \"", $string_utils:from_list(pas[2], " "), "\"");
return;
endif
argspec = {@pas[1], "none", "none"}[1..3];
argspec[2] = $code_utils:full_prep(argspec[2]) || argspec[2];
else
player:tell(pas);
return;
endif
endif
if (!$command_utils:object_match_failed(object = player:my_match_object(spec[1], this:get_room(player)), spec[1]))
vnum = $code_utils:find_verb_named(object, vname = spec[2]);
if (argspec)
while (vnum && verb_args(object, vnum) != argspec)
vnum = $code_utils:find_verb_named(object, vname, vnum + 1);
endwhile
endif
code = vnum ? this:fetch_verb_code(object, vnum) | E_VERBNF;
if (typeof(code) == ERR)
player:tell(code != E_VERBNF ? code | "That object does not define that verb", argspec ? " with those args." | ".");
return code;
else
return {object, argspec ? {vname, @argspec} | vname, code};
endif
endif
return 0;
.
-5-
[Previous Page][Next Page][Contents]