@verb #3:"do_www_setup" this none this rxdo #789
@program #3:"do_www_setup" this none this
"Processes the POST arguments from a setup request."
"This verb handles physical setup (anchor/key)."
"Override to add more functionality. Don't forget to pass."
caller == this && player:isa($webber) || raise(E_PERM)
if (!$www:parse_POST("physicalsetup"))
return pass(@args)
endif
set_task_perms(player.user.wizard ? this.owner | player.user)
if ((x = $www:parse_POST("anchor")) != E_PROPNF && x != $su:nn(this.anchor))
if (x = $su:trim(x))
newanc = $su:match_nn_object(x, this.location, player.user)
valid(newanc) || (newanc = $room_db:find($su:trim(x)))
if (newanc == this.anchor)
"Don't touch it."
elseif (valid(newanc) || newanc == $nothing)
player:tell("Anchoring object to ", $su:nn(newanc), ".
")
x = `this.anchor = newanc ! ANY'
if (this.anchor != newanc)
$msg:mtell("www_error", tostr("Unable to anchor ", this.name, " to ", newanc, "."))
endif
else
$msg:mtell("www_error", "Couldn't match new anchor (" + x + ").")
endif
else
if (this.anchor == $nothing)
"Don't touch it."
else
player:tell("Unanchoring object.
")
x = `this.anchor = $nothing ! ANY'
if (this.anchor != $nothing)
$msg:mtell("www_error", tostr("Unable to unanchor ", this.name, "."))
endif
endif
endif
endif
if ((x = $www:parse_POST("key")) != E_PROPNF)
key = $lock_utils:parse_keyexp(x, player.user)
if (typeof(key) == $STR)
$msg:mtell("www_error", $msg:substitute($lock_utils:msg_malformed_key(), key))
elseif (x != $lock_utils:unparse_key_code(this.key))
try
this:_set_key(key)
player:sub_tell("" + $lock_utils:msg_locked() + "
", this, $lock_utils:unparse_key(key))
except (E_PERM)
$msg:mtell("www_error", "You don't have permission to lock " + this:nn())
endtry
endif
endif
"Last modified by Dax (#789) on Tue May 3 13:43:06 2005 MDT."
.