@program @conchown.muf 1 10000 d i $include $lib/alynna : main[ str:param -- yerf ] var newowner var target param @ not if "^YELLOW^@cchown = ... chowns an object and its contents to the target." .tell exit then param @ "=" split dup not if pop me @ newowner ! else pmatch newowner ! then match target ! me @ mlevel 6 < me @ "CHOWN_ANYTHING" power? not and if me @ newowner @ dbcmp not me @ target @ controls not or if "^RED^Permission denied." .tell exit then then target @ int 0 < if "^YELLOW^I can't find the target object." .tell then newowner @ player? not if "^YELLOW^I can't find that player." .tell then target @ var! tmp 0 try target @ owner var! oldowner target @ newowner @ setown { target @ ansi_unparseobj "^GREEN^ owner changed from " oldowner @ unparseobj " to " newowner @ unparseobj "." }tell catch var! error { target @ ansi_unparseobj "^RED^ could not be chowned, " error @ }tell endcatch ( target @ contents_array foreach target ! pop target @ player? if continue then 0 try target @ owner var! oldowner target @ newowner @ setown { target @ ansi_unparseobj "^GREEN^ owner changed from " oldowner @ unparseobj " to " newowner @ unparseobj "." }tell catch var! error { target @ ansi_unparseobj "^RED^ could not be chowned, " error @ }tell endcatch repeat ) tmp @ target ! target @ exits_array foreach target ! pop target @ player? if continue then 0 try target @ owner var! oldowner target @ newowner @ setown { target @ ansi_unparseobj "^GREEN^ owner changed from " oldowner @ unparseobj " to " newowner @ unparseobj "." }tell catch var! error { target @ ansi_unparseobj "^RED^ could not be chowned, " error @ }tell endcatch repeat ; . c q