-
Notifications
You must be signed in to change notification settings - Fork 1
Creating a Tutorial
All tutorials in the tutorials system are made up of a combination of 5 basic, fundamental 'Tasks'. They include:
- Place - user to place a block
- Selection - a WorldEdit selection
- Command - any command
- /tpll - a tpll command
- Chat - chat message
These are the building blocks of all tutorials
For each tutorial, a creator can create multiple 'locations'. This is the same tutorial but with different answers, instructions and start locations. Locations are created after a tutorial is created and added by simply running through the tutorial and the system sets the answers to that of the creators input. See the page on creating locations (not available yet) once you have created and added a tutorial.
A place task has a 'Material' and a 'Location'. A player must place the correct block in the correct location in order to complete the task.
Any blocks placed in a place task are virtually displayed to the player. This means that they are fake blocks and are only visible to the player during the tutorial. They can interact with these blocks such as with the world edit wand as if they were real.
The selection task is currently limited to just Cuboid selections. It has two points, specified by latitude and longitude coordinates. A player must make a WorldEdit selection with the wand (a wooden axe) in either order to complete the task.
A command task has a 'Command' (the root command, such as //line), 'Command Args' (such as 'orange_concrete 1') and an 'Action type'. A user must enter the command with the correct command args in order to complete the task.
There are 3 different action types: - They are tutorial specific so are the same regardless of which 'location' the player is running through. It is specified against the task when creating the tutorial rather than inputed with the answers when creating a location for the tutorial.
- 'none' - No action is taken, the command event is cancelled and blocked, the user just enters the command and nothing else happens and the task is completed.
- 'virtualBlocks' - Used for displaying virtual blocks after completing a WorldEdit command. The virtual blocks mechanism works for all stand alone WorldEdit commands which invoke a world change, for example //line, //set, //stack. //copy and //paste do not work yet. A command of this type must occur after a selection task.
- 'full' - This will not cancel the command event and will perform the command fully. This is useful for a //wand command as you want the wand to actually be given to the player.
//gmask will be added in the near future and uses the 'none' action type.
A tpll command has some latitude and longitude coordinates and that's it. A user must perform the tpll command and get within a distance specified in the task. (The distance is calculated via the geographical coordinates not blocks, so the unit is metres).
A chat command has a specific case sensitive message which must be entered. A user must simply enter the correct message to complete the task. It may be useful for if you want them to enter how tall a building is.
The gameplay of a tutorial is created with Stages, Steps and Groups.
Stages have many steps, steps have many groups, groups have many tasks.
A user will be able to see what stage and step they are on in a sidebar when playing the tutorial. Steps and stages to help a user get a sense for what they are trying to achieve. Groups provide a method for creators to allow certain things to be done in any order.
Let's start at the bottom with Groups. Groups provide a method for creators to allow certain things to be done in any order. The groups themselves are made up of a list of fundamental tasks which must be completed in order.
Within a step, all groups are started together. The first task in each group is always available for the player to do when the step starts. All groups stay active even if one group is started. The example use is when several corners need to be tplled to and a blocked placed at each corner but it doesn't matter what order you do the corners in. Each corner should be available to do from the start and the order that tasks are done in the group are 1 - the tpll and 2 - the block. Each corner will be given a group and within each group are the two tasks in the correct order.
- If you just have one group in a step it will act as if the step just has a series of tasks to complete in order.
A step is a substage of the tutorial. You divide your tutorial into steps and stages to help a user get a sense for what they are trying to achieve. A step is where instructions are displayed from, so the instructions throughout a step will be the same. All groups in a step are started the the step is started. Once all groups have had all of their tasks completed, the step will end.
A stage is as indicated by the name. It is just a part of the tutorial. You divide your tutorial into steps and stages to help a user get a sense for what they are trying to achieve.
The tutorial file is formed from a blank txt file which you can edit in notepad. This is then uploaded to the server files.
The first line in the tutorial file must specify the tutorial name, the author and the relevance of the tutorial to each category. The relevances to each category are integers from 0 to 100.
Line 1:
Tutorial Name,UUID of Creator,Tpll relevance,WorldEdit relevance,Colouring relevance,Detailing relevance,Terraforming Relevance
Subsequent lines define the gameplay of the tutorial. They dictate how all of the tasks in the tutorial are arranged. Each stage, step, group and task is given one line.
There are some rules for writing the order of Stages, Steps and Groups.
-
A Stage must be specified first. Stages can be specified at any point within the file. It indicates the end of the last Stage and the start of a new Stage.
-
A Step can be specified only after a Stage line or a Task line. If a new Step is specified after a Task line it indicates that all of the Tasks and Groups in the Step are now specified.
-
A Group can be specified after a Step line or a Task line. As above, if a new Group is specified after a Task line it indicates that all of the Tasks in the previous Group are now specified.
-
A task can only be specified after a Group line or another Task line.
A stage line starts with a '[' which immediately proceeds (with no space) the Stage name.
Example:
[BTE Basics
A step line starts with a '(' which immediately proceeds (with no space) the Step name. There is then a comma after which the step instruction type is specified. This can either be hologram or chat and determines how the instruction is displayed. The instructions for a step are written when creating a location for the tutorial.
Example:
(The /ll command,hologram
A group line starts with a '{' which immediately proceeds (with no space) the Group name. The group name currently has no application within the current version of TeachingTutorials.
Example:
{Corner1
A task line starts with a '~' which immediately proceeds (with no space) the type of task that is to be performed. The task type is case sensitive and can be one of 5 options:
tpll, command, selection, place, chat
The rest of the line depends on the task type.
In version 1.0.2, only 'command' needs any additional information and all other task types are just specified as ~TaskType.
The command task must be one of 3 options:
~command,none, ~command,virtualBlocks, ~command,full
Above version 1.1.0 Beta 1 the tpll task needs additional information. The desired accuracy of the tpll task must be specified. The perfect distance (the distance (in metres) at which the performance score will be 1 and a "Perfect !" message will be displayed) must be specified first, followed by a semi colon and then the limit distance (in metres) which is the distance greater than which the tutorial will not accept the tpll command as accurate enough.
Example:
~tpll,0.25;1
To add the tutorial to the system, simply upload the file into the plugins/TeachingTutorials/NewTutorials directory in the server files. Make sure you then remove it after restarting the server otherwise it will add a copy every time you restart the server