There is absolutely no art on this map yet, so this is simply a concept to test the mechanics. This version does not include any texturing, lighting, decorative geometry and clipping, particles or sounds, and the hub area is just a placeholder. If you feel like adding any of these, you are explicitly allowed to do so. Also, I am not a native speaker, so the instructions may not always be as clear as they should be. For convenience, a dump of all those instructions is found below.
EDIT: Version 0.2 comes with the following changes.
- Holo bots (mapmodels) that give you a clue where exactly to jump, boost, kick or slide
- A replay file (Turorial.dmo). Put it in the demos/ subdirectory and play it with /demo Tutorial
- Slightly different variables to disable impulse moves, thus some different ordering and instructions.
- The wall running and impulse boost sections should be easier to complete now
- First attempt to support custom key bindings in the instructions
- Still no textures or art stuff whatsoever
Here are the current triggers to copy/paste, they are usually not saved with the map.
- {l Code}: {l Select All Code}
on_trigger_0 = [
newgui Hint0 [
guishowtitle
guititle "^fy Welcome to the tutorial"
guifont super [
guilist [ guitext "^fw Here you can learn about all impulse moves and parkour techniques." ]
guilist [ guitext "^fw This area consists of nine sections, each with a tutor NPC like me." ]
guilist [ guitext (concat "^fw Talk to the other tutors using the^fy" (searchbinds "use") "^fw key to learn new moves and abilities.") ]
guilist [ guitext "^fw The tutors will not only give you instructions, they also unlock those moves for you." ]
guilist [ guitext "^fw The later sections introduce more powerful moves, but the difficulty curve should be flat." ]
guilist [ guitext "^fw You can therefore try the sections in any order you like, " ]
guilist [ guitext "^fw but keep in mind that moves from earlier sections will be reused without further explanation." ]
guilist [ guitext (concat "^fw One last thing: If you get stuck somewhere, you can use the^fy" (searchbinds "kill") "^fw key to suicie.") ]
guilist [ guitext "^fw You will then restart here, such that you can pick another section to proceed." ]
guilist [ guibutton "^fw Click here or press ^fyEsc^fw to close this window." [cleargui] ]
]
]
showgui Hint0
]
on_trigger_1 = [
newgui Hint1 [
guishowtitle
guititle "^fy 1: Impulse pace and impulse dash"
guifont super [
guilist [ guitext "^fw You certainly already know how to use the^fy WASD^fy keys to move and the mouse to steer." ]
guilist [ guitext "^fw All of your impulse moves are disabled for now, except for the impulse pace and impulse dash." ]
guilist [ guitext (concat "^fw Impulse pace (run) is on by default and can be disabled by holding the" (searchbinds "pacing") "^fw key (walk).") ]
guilist [ guitext (concat "^fw If that is still too fast, you can hold the^fy" (searchbinds "crouch") "^fw key to crouch. ") ]
guilist [ guitext "^fw Double tap a movement key ^fy(WASD)^fw to perform an impulse dash." ]
guilist [ guitext "^fw You will need this move to get over a steep slope here, as you cannot jump yet." ]
guilist [ guibutton "^fw Click here or press ^fyEsc^fw to close this window." [cleargui] ]
]
]
showgui Hint1
jumpspeed 1e-5
impulseallowed 5
]
on_trigger_2 = [
newgui Hint2 [
guishowtitle
guititle "^fy 2: Basic jumps"
guifont super [
guilist [ guitext (concat "^fw Allow me to enable your next ability. Simply press the^fb" (searchbinds "jump") "^fw key to jump.") ]
guilist [ guitext "^fw Note that jumping while on ground does not count as an impulse move." ]
guilist [ guitext "^fw But that will be something to discuss later. So first, let us try some basic jumps." ]
guilist [ guitext "^fw The gaps over there will give you an idea of the width and height you can cover." ]
guilist [ guitext "^fw Do you see how slopes affect your jumping ability? " ]
guilist [ guitext "^fw Well, go for it, and do not forget that timing is the key to success." ]
guilist [ guibutton "^fw Click here or press ^fyEsc^fw to close this window." [cleargui] ]
]
]
showgui Hint2
jumpspeed 110
impulseallowed 5
]
on_trigger_3 = [
newgui Hint3 [
guishowtitle
guititle "^fy 3: Impulse jump or vertical boost"
guifont super [
guilist [ guitext (concat "^fw Let us unlock your first impulse move, a vertical jump in midair using the ^fb" (searchbinds "jump") "^fw key.") ]
guilist [ guitext "^fw This will only work if you release the^fy WASD^fw keys while falling or jumping." ]
guilist [ guitext "^fw Soon you will learn about other impulse moves, but we shall try this one for now." ]
guilist [ guitext "^fw To get over those obstacles, you should know that running helps you to jump higher." ]
guilist [ guitext "^fw Run... jump... impulse jump... that does not sound too complicated, eh?" ]
guilist [ guitext "^fw Keep your eyes open for ^fbblue^fw hologram bots, they will help you time your jumps." ]
guilist [ guibutton "^fw Click here or press ^fyEsc^fw to close this window." [cleargui] ]
]
]
showgui Hint3
jumpspeed 110
impulseallowed 7
impulseboost 0
impulsepower 0
]
on_trigger_4 = [
newgui Hint4 [
guishowtitle
guititle "^fy 5: Impulse boosts or air dashing"
guifont super [
guilist [ guitext "^fw The ability we just unlocked is very useful and versatile." ]
guilist [ guitext (concat "^fw While jumping or falling, hold one of the ^fy WASD^fw keys and press^fb" (searchbinds "jump") "^fw.") ]
guilist [ guitext "^fw This results in a dash that propels you in the direction you are facing." ]
guilist [ guitext "^fw To cover a wide distance, you should thus look upwards in a 45 degree angle." ]
guilist [ guitext "^fw Alternately, you can boost forward to gain speed or even downwards to fall faster." ]
guilist [ guitext "^fw Also, take a look at your impulse meter when impulse boosting. " ]
guilist [ guitext "^fw Each impulse move will deplete some energy, which will recover over time." ]
guilist [ guitext (concat "^fw One last tip: Crouching with ^fy" (searchbinds "crouch") "^fw allows the fastest impulse recovery rate.") ]
guilist [ guibutton "^fw Click here or press ^fyEsc^fw to close this window." [cleargui] ]
]
]
showgui Hint4
jumpspeed 110
impulsejump 1.1
impulseallowed 7
impulseboost 1
impulsepower 0
]
on_trigger_5 = [
newgui Hint5 [
guishowtitle
guititle "^fy 6: Impulse slide and power jump"
guifont super [
guilist [ guitext "^fw These moves are not very commonly in use, but they can be quite interesting:" ]
guilist [ guitext "^fw Sliding does not only allow fast movements, but also to crash into your foes to attack them." ]
guilist [ guitext (concat "^fw Pressing^fb" (searchbinds "jump")"^fw while sliding results in a power jump, a rather difficult but powerful move.") ]
guilist [ guitext (concat "^fw First, you should know that pressing^fr" (searchbinds "crouch")"^fw while holding a ^fyWASD^fw key causes a jump-lock.") ]
guilist [ guitext "^fw You are then unable to jump, unless you release the ^fyWASD^fw keys, which then triggers a jump." ]
guilist [ guitext (concat "^fw This can happen easily if you intend to slide, as you will need the^fr" (searchbinds "crouch")"^fw key to crouch.") ]
guilist [ guitext "^fw One way to perform an impulse slide is to crouch while falling before you hit the ground." ]
guilist [ guitext "^fw The other option is to crouch while standing and then double tap a^fy WASD^fw key." ]
guilist [ guitext "^fw To get past the last obstacle, you will need to look up while performing a power jump." ]
guilist [ guitext "^fw The ^frred^fw holo bots over there give you an idea where to slide." ]
guilist [ guibutton "^fw Click here or press ^fyEsc^fw to close this window." [cleargui] ]
]
]
showgui Hint5
jumpspeed 110
impulsejump 1.1
impulseallowed 7
impulseboost 1
impulsepower 1.5
]
on_trigger_6 = [
newgui Hint6 [
guishowtitle
guititle "^fy 4: Vaulting or ledge grabbing"
guifont super [
guilist [ guitext "^fw Let us enable your first parkour move, the ability to vault." ]
guilist [ guitext (concat "^fw All parkour moves are performed using the^fg" (searchbinds "special") "^fw key and use impulse energy.") ]
guilist [ guitext (concat "^fw Simply hold^fg" (searchbinds "special") "^fw when an obstacle gets in your way that is not too high for vaulting.") ]
guilist [ guitext "^fw There also holo bots to help you time your parkour moves. Their color is ^fggreen^fw." ]
guilist [ guibutton "^fw Click here or press ^fyEsc^fw to close this window." [cleargui] ]
]
]
showgui Hint6
jumpspeed 110
impulsejump 1.1
impulseallowed 15
impulseboost 1
impulsepower 1.5
impulseparkourkick 0
impulsekick 1E-5
impulsekickdelay 350
]
on_trigger_7 = [
newgui Hint7 [
guishowtitle
guititle "^fy 7: Impulse kicks or wall kicks"
guifont super [
guilist [ guitext "^fw Let us proceed with your second parkour ability, the wall kick." ]
guilist [ guitext "^fw This section may be a bit more difficult, as kicks can be tricky to execute. " ]
guilist [ guitext (concat "^fw Pres^fg" (searchbinds "special") "^fw when touching a wall to propel yourself away from the surface. ") ]
guilist [ guitext "^fw If you are facing the wall (normal vector), the kickpush will be in a horizontal direction." ]
guilist [ guitext "^fw As you look upwards or downwards, the angle of your kick will get steeper." ]
guilist [ guitext "^fw Looking either up or down vertically will kick you straight upwards, keeping you close to the wall." ]
guilist [ guitext "^fw Each wall kick will allow you to perform one additional impulse move, such as boosts or jumps." ]
guilist [ guitext "^fw However, you cannot perform more than six impulse moves without touching ground again." ]
guilist [ guitext "^fw To get past the obstacles here, you will need to use jumps and kicks in tandem." ]
guilist [ guitext "^fw Remember that impulse boosts at a 45 degree angle will cover the widest distance." ]
guilist [ guibutton "^fw Click here or press ^fyEsc^fw to close this window." [cleargui] ]
]
]
showgui Hint7
jumpspeed 110
impulsejump 1.1
impulseallowed 15
impulseboost 1
impulsepower 1.5
impulseparkourkick 1.3
impulsekick 1E-5
impulsekickdelay 2000
]
on_trigger_8 = [
newgui Hint8 [
guishowtitle
guititle "^fy 8: Implulse skate or wall running"
guifont super [
guilist [ guitext "^fw Wall running is probably the most important parkour technique." ]
guilist [ guitext "^fw So if it is that useful, why did we not tell you about that in earlier sections?" ]
guilist [ guitext "^fw The answer is simple: You could have passed many obstacles without using the other moves." ]
guilist [ guitext (concat "^fw You can press^fg" (searchbinds "special") "^fw while jumping or falling close to a wall to start wall running.") ]
guilist [ guitext "^fw Remember that if you face the wall, you will perform an impulse kick instead." ]
guilist [ guitext "^fw Wall running is not a continuous process, but consists of repeated impulse pushes." ]
guilist [ guitext "^fw Keep in mind that you cannot use more than six impulse moves without touching ground." ]
guilist [ guitext (concat "^fw Pressing^fb" (searchbinds "jump") "^fw while wall running performs a wall kick, which in return allows another boost.") ]
guilist [ guitext "^fw A quick succession of kicks and boosts can grant incredible speed, but depletes your energy quickly." ]
guilist [ guitext "^fw Running on a wall smoothly is usually preferable and will cover a wider distance." ]
guilist [ guibutton "^fw Click here or press ^fyEsc^fw to close this window." [cleargui] ]
]
]
showgui Hint8
jumpspeed 110
impulsejump 1.1
impulseallowed 15
impulseboost 1
impulsepower 1.5
impulseparkourkick 1.3
impulsekick 150
impulsekickdelay 2000
]
on_trigger_9 = [
newgui Hint9 [
guishowtitle
guititle "^fy 9: Wall climbing"
guifont super [
guilist [ guitext "^fw The last ability I can unlock for you is a move to climb walls. " ]
guilist [ guitext "^fw Technically, this is just a sequence of vertical wall kicks, as described in section 7." ]
guilist [ guitext (concat "^fw Thus you can either look straight upwards or downwards near a wall and then hold the^fg" (searchbinds "special") "^fw key.") ]
guilist [ guitext "^fw The actual height you gain is limited by the number of kicks you can perform, which equals six." ]
guilist [ guitext "^fw If your angle of view is not precisely vertical, this will result in inefficient zig-zag moves." ]
guilist [ guibutton "^fw Click here or press ^fyEsc^fw to close this window." [cleargui] ]
]
]
showgui Hint9
jumpspeed 110
impulsejump 1.1
impulseallowed 15
impulseboost 1
impulsepower 1.5
impulseparkourkick 1.3
impulsekick 150
impulsekickdelay 350
]
As usual, constructive feedback is welcome.
Have fun.