GPDL $GET_LEVEL_STATS
$GET_LEVEL_STATS_ASL(Level, Keyword) $SET_LEVEL_STATS_ASL(Level, Keyword,Value) $IF_LEVEL_STATS_ASL(Level, Keyword) $DELETE_LEVEL_STATS_ASL(Level, Keyword)
Level is the dungeon level with which the string is associated. If 'Level' is the empty string ("") then the level is assumed to be the level the party is currently on.
Keyword is the (case-sensitive) keyword value.
Value is the string associated with the given keyword.
Used to manipulate the String List that is Associated with each level of the dungeon. There is one such 'Associated String List' (ASL) for each level. $SET and $GET return the value, $IF returns "1" if the keyword exists else "", and $DELETE returns "".
Some very interesting things can be done with these ASLs that are associated with a level. You can use event-processing to make each wall in the dungeon visible or invisible, blocked or un-blocked, and the wall graphic can be changed. This is accomplished by adding a string to the level's ASL for each wall that you wnat to be different from the static properties established with the editor. The two keys that you need to do this are:
"$WALL,x,y,d,n" "$BLOCK,x,y,d,s"
In these keys the 'x' and 'y' are integers giving the location of the cell that the wall is in. The 'd' is the direction: 'N','E','S', or 'W'. The parameter 'n' is an integer specifying the wall graphic and '0' means no wall will be shown. The parameter 's' is either "OpenBlk" or "BlockedBlk' to mean that the wall blockage is either 'open' and passable by the party or 'Blocked' and not passable.
An example ... say that (using the editor) we put a blocking wall on the south side of cell (3,5) on level 2 but that we want the wall to disappear and become passable if a particular quest is completed.
We would add two ASL entries - one to make the wall disappear and one to make the passage possible:
$SET_LEVEL_STATS_ASL(2,"$WALL,3,5,S",0); $SET_LEVEL_STATS_ASL(2,"$BLOCK,3,5,S","OpenBlk");
These entries could be added using a GPDL script or by using the appropriate actions in a LogicBlock event.