Skip to content

Instantly share code, notes, and snippets.

@demonnic
Created January 18, 2018 16:27
Show Gist options
  • Save demonnic/c709905d1ba4884e46f4a0fd5add4269 to your computer and use it in GitHub Desktop.
Save demonnic/c709905d1ba4884e46f4a0fd5add4269 to your computer and use it in GitHub Desktop.
generic mapper help text
Jor'Mox's Generic Map Script
This script allows for semi-automatic mapping using just room names and exits. It is
a good idea to know the general layout of the area you are trying to map before
turning on mapping with this script, so as to minimize how much you need to move
things around to make it look how you want it to. The script will automatically
stretch out a map to make space for a room if it would overlap with another one, but
it is important to make sure that things line up properly, or you will have inaccurate
maps with duplicate sections in them.
It is up to YOU to create triggers that appropriately raise the following events, and
gather the necessary information. The way in which such things are displayed varies
dramatically from game to game, so any set of triggers for one game will likely not
work for the next.
Important Events for Proper Mapping
onMoveFail - raise this event to indicate that you attempted to move, but no move
was made
onVisionFail - raise this event to indicate that you moved successfully, but are
unable to gather some or all of the necessary info about the room
onRandomMove - raise this event to indicate that you moved, but do not know what
direction you moved in
onNewRoom - raise this event to indicate that a room has been detected, typically
after moving or looking to see the room you are currently in
onPrompt - raise this event to indicate a prompt has been detected, room name and
exits must be stored in map.prompt.room and map.prompt.exits before raising
this event
onForcedMove - raise this event to indicate that you have been moved without
entering a command, but you know the direction you went. pass the relevant
direction as the first argument. if this movement needs to preempt other
movement commands in the queue (often the case), then pass "true" as a string
as the second argument
Important Commands (Aliases) for Proper Mapping
Fundamental Aliases
start mapping <optional area name> - use this command to start adding new content
to the map, area name is required if there are no rooms in the map
stop mapping - use this command to stop mapping
save map - saves the map to a file (map.dat, located in the profile folder), this
is generally only needed to share the map with someone else, or to act as a
backup in case something happens to the map that Mudlet maintains for your
profile
load map <optional 'local'> - loads the map from the location specified in the
download_path, or from the local copy
export area <area name> - exports a file to the profile folder with data for the
named area
import area <area name> - imports area data from a file created with export area,
must be located in profile folder
Mapping Aliases
map mode <simple, normal, or complex> - sets the mapping mode, determining what
exits are set automatically as you move around
set area <area name> - move the current room into the named area, area will be
created if it does not currently exist
shift <direction> - use this command to move the room you are currently in around
on the map
merge rooms - use this command to combine the room you are in with any other rooms
in the same location and with the same name
clear moves - use this command to clear the move queue after you attempt a move
that doesn't succeed, but for which there is no trigger indicating this with
the onMoveFail event
add door <direction> <optional none, open, closed, locked> <optional yes, no> -
adds a door in the given direction, defaulting to closed (use none to remove
a door), and defaulting 'no' for one-way status
add portal <entry command> - adds a portal that uses the given command for entry
set exit <direction> <roomID> - sets the given direction to connect, one way,
to the room with the specified roomID, used for very complex areas
Normal User Aliases
find me - use this command to search the entire map to try to locate you based on
room name and exits, typically not necessary, as this will be done anyway if
a person moves and their location is unknown
find path <room name> OR <room name> ; <area name> - used to find a walking path
to a room with the given name, in the given area if specified
set character <name> - sets the current character name (stored as map.character)
set recall - sets the current room as the recall room for the current character
Important Information Regarding Speedwalking
The existing doSpeedWalk function (which is located at the bottom of the script,
just above the event handler function) currently only displays a list of moves
to make to get to the target room. This function should be modified to implement
speedwalking in your game. For this purpose, a table of roomIDs is generated and
and stored in speedWalkPath, and a matching table of directions is stored in
speedWalkDir. You can check for doors with a roomID and a direction using the
check_doors function in the following manner: check_doors(roomID,dir) or
check_doors(roomID,tbl_of_dirs). It will return false if a door is not present,
or a table of directions and door status codes, like what you would get using the
getDoors function, but only for the exit(s) specified.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment