One room one exit
From Tapestries MUCK
(Difference between revisions)
(One intermediate revision not shown) | |||
Line 1: | Line 1: | ||
+ | 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. | ||
+ | |||
<pre>*********************************** | <pre>*********************************** | ||
ON PARENT (ONCE) | ON PARENT (ONCE) | ||
*********************************** | *********************************** | ||
/* Global no-access failure messages*/ | /* Global no-access failure messages*/ | ||
- | @set # | + | @set <#parent>=/_exit/msg/fail:Huh? (Type "help" for help.) |
- | @set # | + | @set <#parent>=/_exit/msg/ofail: |
/* Exit-origin combo specific message code */ | /* Exit-origin combo specific message code */ | ||
- | @set # | + | @set <#parent>=/_exit/code/fail:{if:{ne:{eval:{prop:_allowed?}},yes},{prop:_exit/msg/fail,<#parent>},{prop:_origins/{ref:here}/fail/locked}} |
- | @set # | + | @set <#parent>=/_exit/code/ofail:{if:{ne:{eval:{prop:_allowed?}},yes},{prop:_exit/msg/ofail,<#parent>},{prop:_origins/{ref:here}/ofail/locked}} |
- | @set # | + | @set <#parent>=/_exit/code/succ:{prop:_origins/{ref:here}/succ} |
- | @set # | + | @set <#parent>=/_exit/code/osucc:{prop:_origins/{ref:here}/osucc} |
- | @set # | + | @set <#parent>=/_exit/code/odrop:{prop:_origins/{ref:here}/odrop} |
Line 25: | Line 27: | ||
/* set all fail/ofail messages to use code stored in parent */ | /* set all fail/ofail messages to use code stored in parent */ | ||
- | @fail <exit>={eval:{prop:/_exit/code/fail,# | + | @fail <exit>={eval:{prop:/_exit/code/fail,<#parent>}} |
- | @ofail <exit>={eval:{prop:/_exit/code/ofail,# | + | @ofail <exit>={eval:{prop:/_exit/code/ofail,<#parent>}} |
- | @succ <exit>={eval:{prop:/_exit/code/succ,# | + | @succ <exit>={eval:{prop:/_exit/code/succ,<#parent>}} |
- | @osucc <exit>={eval:{prop:/_exit/code/osucc,# | + | @osucc <exit>={eval:{prop:/_exit/code/osucc,<#parent>}} |
- | @odrop <exit>={eval:{prop:/_exit/code/odrop,# | + | @odrop <exit>={eval:{prop:/_exit/code/odrop,<#parent>}} |
*********************************** | *********************************** |
Latest revision as of 02:24, 19 May 2014
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]