Another attempt at a script; it is still a very BETA version and bugs may lurk after any corner; however I hope it will be useful: tests, suggestions, comments and criticisms are welcome. Several parts of the code have been adapted from the Portals script by @yahgiggle and RichieS for the Rising Cities server.
Version 0.1 - Features
*) Implements the concept of elevator, which just a name and an id to which levels will belong.
*) Implements the concept of level, which is a physical cube in the world: it has a size and a position, belongs to an elevator and has a specific order within that elevator. The player has to be in one of this cubes for the elevator to work. From this level he can be teleported to any other level of the elevator with the command /floor n (where n is the destination level), but not to a level of another elevator, of course!
*) In addition to creating and deleting elevators and levels, it is possible to visually show and hide them and to have a list.
Commands
/elev new <name> | creates a new, empty elevator, named <name>. E.g.: /elev new house |
/elev selectlevel | start the process to select a 3D area which will become a level (much like defining the span of a new blueprint) |
/elev newlevel <elev.ID> <level number> | created the <level number>-th level for the <elev.ID>-th elevator, using the 3D area just selected. The elevator has to be created in advance. E.g.: /elev newlevel 1 5 |
/elev delete <elev.ID> | deletes the elevator and all its levels. E.g.: /elev delete 1 |
/elev deletelevel <elev.ID> <level number> | deletes the given level of the given elevator. E.g.: /elev deletelevel 1 5 |
/elev list | lists the elevator and their levels |
/elev show | visually shows the elevators |
/elev hide | hides the elevators |
/floor <level number> | teleport the player to that floor, if (s)he is in an elevator and that floor exists |
*) All the /elev ... commands can be reserved to admins only by setting adminsOnly=true in the file config.properties or left open to all players with adminsOnly=false.
*) Elevator IDs are generated automatically and are not necessarily supposed to be in sequence. The /elev list command also lists the elevator IDs.
*) Level numbers also do not need to be in sequence, but it is usually clearer to do so. Level do not even need to be one above the other in a column like in reality; if you like to be creative, the levels of an elevator can be in any position!
*) Level numbers start from 1. I apologise to the cultures which number the ground floor differently (including my own), but sticking to numbers make things much easier.
Installation
Extract the files in the ZIP placing the whole TELevator folder into the scripts folder of RW.
Edit the config.properties file, if you want to leave all the commands available to all players, rather than to admins only (the default).
Open points and known issues
*) The script has only been alpha-tested! There might be bugs of any kind! Please test it, if you are interested, and report issues in a way which allows me to reproduce them and be patient. Thank you!
*) The message displayed when starting the area selection for a new elevator level says: Select the area, stand on the platform and use "/elev createlevel" to save it. This refers to an older version of the script. Use the /elev newlevel command instead!.
*) The script uses a database relative to the script itself not to the world; this makes it less suited to single-player multi-world contexts, as the names, positions and numbers of elevators and levels will be common to all worlds. However, I am reluctant to pollute the world database with extraneous data.
*) When the player first appears in the world, it may takes a few seconds and/or the player has to move at least a little bit before the script recognises the player position. This depends on how data are filled by RW and there is little I can do about
Enjoy! M.