Home
About
Policies
FAQ
Forums
Registration
Password Recovery

One room one exit

From Tapestries MUCK

Jump to: navigation, search

General premise is that by placing the exit on the parent, then using MPI to limit/lock where it can be used from, you can cut down on the quota used for exits.

***********************************
ON PARENT (ONCE)
***********************************
/* Global no-access failure messages*/
@set <#parent>=/_exit/msg/fail:Huh?  (Type "help" for help.)
@set <#parent>=/_exit/msg/ofail:

/* Exit-origin combo specific message code */
@set <#parent>=/_exit/code/fail:{if:{ne:{eval:{prop:_allowed?}},yes},{prop:_exit/msg/fail,<#parent>},{prop:_origins/{ref:here}/fail/locked}}
@set <#parent>=/_exit/code/ofail:{if:{ne:{eval:{prop:_allowed?}},yes},{prop:_exit/msg/ofail,<#parent>},{prop:_origins/{ref:here}/ofail/locked}}
@set <#parent>=/_exit/code/succ:{prop:_origins/{ref:here}/succ}
@set <#parent>=/_exit/code/osucc:{prop:_origins/{ref:here}/osucc}
@set <#parent>=/_exit/code/odrop:{prop:_origins/{ref:here}/odrop}


***********************************
ON EACH EXIT (ONCE)
***********************************
@open <tla>=here,<#dest>

/* @lock info: lockable-room and origin both reasons to deny entry */
@lock <exit> = _allowed?:yes&!_locked:yes
@set <exit> =/_allowed?:{if:{propdir:_origins/{ref:here}},yes,no}
@set <exit>=/_locked:{prop:_locked,{links:this}}

/* set all fail/ofail messages to use code stored in parent */
@fail <exit>={eval:{prop:/_exit/code/fail,<#parent>}}
@ofail <exit>={eval:{prop:/_exit/code/ofail,<#parent>}}
@succ <exit>={eval:{prop:/_exit/code/succ,<#parent>}}
@osucc <exit>={eval:{prop:/_exit/code/osucc,<#parent>}}
@odrop <exit>={eval:{prop:/_exit/code/odrop,<#parent>}}

***********************************
ON EACH EXIT (FOR EACH ORIGIN ROOM)
***********************************

@set <exit>=/_origins/<#origin>/fail/locked:[MESSAGE]
@set <exit>=/_origins/<#origin>/ofail/locked:[MESSAGE]
@set <exit>=/_origins/<#origin>/succ:[MESSAGE]
@set <exit>=/_origins/<#origin>/osucc:[MESSAGE]
@set <exit>=/_origins/<#origin>/odrop:[MESSAGE]
Personal tools
Namespaces
Variants
Actions
navagation
information
wiki
Toolbox