A small guide to Custom Elements programming with ***** Rocks'n'Diamonds V3.1.1 ***** A customizable game / game-engine by Holger Schemel ---------------------------------- Custom Elements Walkaround (draft) by Francesco S. Carta ---------------------------------- This document is intended to be used with the levelset "CEs Walkaround". The levelset contains pairs of levels for each section. The first level of each pair is empty: use it to create your Custom Elements following the instructions. The second one shows how your level should look like at the end of each section. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Introduction ------------------------- "CE" stands for "Custom Element", so if you read "CE1" in these instructions, you'll have to look for "Custom Element 1" in the game. First of all, click on "level creator" (also called "the editor"): the list of elements on the right side of the editor will show many elements, but maybe not all those you want. Exit the editor (either by clicking on "exit" button or pressing the ESC key), click on "setup" in the main screen, then click on "editor settings" and activate all the options you want. For now, set only "Emerald Mine", "More", "Characters", "Custom" and "Headlines" to "ON", and set all the others to "OFF". Then go back to "setup", click on "save and back" and open "level creator" again. Suppose that you want to set CE1 to look like an emerald. Select CE1 from the editor (scroll down until you find a lot of identical elements showing a question mark [?] below the headline "custom elements"). Notice as the bottom-screen status line reads "CUSTOM ELEMENT 1" while the pointer is on the first, top-left custom element. Click on it to select it. Below the list of elements there are several buttons, click on the button with the question mark, it will open the element settings' screen. Click on the tab "config 1". You want to change CE1's graphic appearance. The option to do the above task starts showing up this way: Checkbox Single-field Element Box || || \/ \/ [ ] USE GRAPHICS OF ELEMENT: [ ] If now you click on the "emerald" element (for instance) to take it's graphics, the settings page will turn into emerald's settings, and you don't want this. There are three solutions: First: When CE1's "config 1" tab is active, click on the top option "stick this screen to edit content". Now you can select the emerald and put it into the "use graphics of element" box. Second: Hold down "control" and click on the emerald: it will be selected without changing the setting's screen, now you can put it into CE1's settings. Third: Notice that you can have 3 elements selected at any time. Below the elements' list there are three fields showing the selected elements for each button of the mouse (left, middle, right). So you can first select the emerald with the right button, then select CE1 with the left button and then put the emerald into CE1 settings by right-clicking in the element boxes. Now, you have set it in this way: [V] USE GRAPHIC OF ELEMENT [*] [the letter "V" represents the tick on the checkbox, the asterisk (*) represents the graphic of an emerald] and CE1 will look like an emerald. If you change it this way: [ ] USE GRAPHIC OF ELEMENT [*] The graphic will *not* be used, even if it's set. Be aware of this because it's common to almost all options, and it's one of the easiest traps to fall in when managing a lot of CEs. Here is another thing you might like to know: At the bottom of the editor there is a status text which changes according to the position of the mouse pointer. Normal behaviour: When the pointer is over a field on the map, the status shows the coordinates of that field. When the pointer is over an element in the elements' list, the status shows the name of that element. When the pointer is over a field in the element's settings pages, it shows the description of that option. By holding down "control" on the keyboard, the status text changes its behaviour: "Control" behaviour: When the pointer is over a field, either on the map, on the elements' list or on the settings pages, the status shows the name of that element. The "control mode" is useful not only because it shows elements' names anywhere, but even because it allows selecting an element without affecting the active screen of settings, as you have read in the second solution of the above problem. --------------------- A beginner's trap: In the settings tabs there are a lot of options grouped into dropdown lists. If you want to set CE1 to "pushable", you select CE1, you open "element settings" and you activate the "config 1" tab. At a first glance, you can see a "diggable" option but not a "pushable" one. This is because a CE can't be "pushable" and "diggable" at the same time, so you have to change "diggable" to "pushable" by clicking on it. Take a look to the other tabs ("config 2" and "change"), there are a lot of dropdown lists, click on them just to see all the various options. If you can't find an option reported in these instructions, just look into the dropdown lists and you will surely find it. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Section I The main action of a CE is to change into something else. Target: Make a CE which will look and act like a rock, but that will turn into an emerald when pushed by the player. Instructions: Select CE1 and open the "element settings" page by clicking the "?" button. On "config 1" tab, set it to "use graphics of element:", put a normal rock in the relative empty field and set it to "pushable". On "config 2" tab, set it to "can fall", "can smash: everything" and "slippery: random". On the "change" tab, set "element changes to" and put an emerald in the box beside of this last option. Set "pushed by the player" as condition to trigger the change. ***Remember to tick the checkboxes of the options that you set*** Now this should be enough. Let's try it. Legend: P = player C = CE1 (rock) * = emerald E = exit # = wall digits 0-9 = represent the coordinates of the single fields Start position: P C E ########## 0123456789 (draw this on the level map and start the level either by clicking "test" or by pressing "enter" on the keyboard) Second position: (player walks right and pushes CE1 from f2 to f3 - meaning field nr. 2 and nr. 3) PC E ########## 0123456789 Third position: (result) P* E ########## 0123456789 So the target is achieved. Now let's introduce the first problem: if there are two rocks one beside the other: P CC E ########## 0123456789 you won't be able to turn them into emeralds, because you cant push them. It should be solved by adding a changepage and then setting it to change when the CE is pressed by the player, but it will not work, because a "pushable" thing can't be "pressed". You solve it by un-ticking the "pushable" checkbox and changing "pushed" to "pressed" in the only changepage needed. Now fill all the empty spaces on the level with rocks. This is the final appearance of this section's level: ############ 0#CCCCCCCCCC# 1#CCCCCCCCCC# 2#CCCCCCCCCC# 3#CCCCCCCCCC# 4#PCCCCCCCCE# ############ 0123456789 Please notice that you must leave the player and the exit in order to play *and* exit it :) The number of gems required for this level has been set to 48, the exact number of rocks shown above: the only way to lose the level is to be smashed by a rock [FIX] or by a gem [FIX]. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Section II Touching is a relative concept. Let's make a rock which will turn into an emerald when touching another rock. As in Section I, set CE1 to use the graphics of a rock and to act like one of them, so set it to "pushable", "can fall", "can smash: everything" and "slippery: random". Now go to the changepage and set it this way: "element changes to [emerald]", "touching [CE1]". Draw a level like this: P C C E ########## 0123456789 You will be able to push one rock close to the other and then they will both turn into emeralds P** E ########## 0123456789 But suppose you draw the level in this way: P CC E ########## 0123456789 The rocks will remain rocks, even if you try to push them (even if you "press" them, to be precise). The "touching" event is raised only if the touching condition happens *after* the birth of the element. In this particular case, the two rocks are created in the same frame (when the level "starts playing"), and so neither of them will "start" touching the other. Trying to solve this, set "element changes to [CE1]", "delay: 1" on the change tab. Even if both rocks should now be replaced at the same frame, one of them will raise the "touching" event for the other (maybe Holger could give me an explaination for this, I can suppose the reason, as I've read something about "top-down, left-right" computation of frames, but did not catch a lot), so if you draw a level this way: P CCCC E ########## 0123456789 Right after the start it will change this way: P C*C* E ########## 0123456789 Well, it should suffice, since we could collect the emeralds and then push beside the two remaining rocks, thus changing them into emeralds. Check it out, when pushing rocks from this position: P C C E ########## 0123456789 to this other: PCC E ########## 0123456789 we'll get one of the the following: PC* E ########## 0123456789 - or - P** E ########## 0123456789 This is a problem: the last changepage has almost solved the problem about the "rocks stuck beside" but has made unsure the action of changing them when *pushing* them beside, which gave two emeralds every time. This happens because sometimes one of the rocks changes to itself in the exact frame that you push them beside: since the other one changes immediately into an emerald, the latest rock created will have no rocks to touch in the frame *after* its birth, so it will not change to an emerald in its turn. There are two solutions to this situation: Lazy solution: Get rid of the problem about stuck rocks by deleting the changepage where CE1 changes to itself (simply untick the checkbox "element changes to") and by putting the rocks over some sand in this way: S = sand CCCCCC PSSSSSS E ########## 0123456789 Dig the sand and all the rocks will change into emeralds: ******P E ########## 0123456789 (presuming that you put an even number of rocks as shown above - if you put an odd quantity, one of them will not change). But this is just the lazy way, let's see the good one: A) Select CE2 and set it as usual with normal rock properties. NB: If you have unticked CE1 change option as said in the lazy solution, re-tick it. It's needed to automatically start the change for stuck rocks. B) Set CE2 to change into an emerald after 1 frame. C) Add a changepage to CE1, and set it to change into CE2 when touching CE1. D) Add another changepage CE1, and set it to change into CE2 when touching CE2. Now draw a level this way: P CCCC E ########## 0123456789 You'll get this after starting it: P C*** E ########## 0123456789 This is not enough. We have achieved in changing 3 stuck rocks out of 4 (with the old settings we got a change for each couple of rocks, so "2 out of 4", "3 out of 6", "4 out of 8" and so on). If we add more rocks in this way: P CCCCCC E ########## 0123456789 We'll get: P C***** E ########## 0123456789 So the rule is "all but one" (the first) and not "3 out of 4" as supposed before. We need a further CE to completely solve it, this is the resume of the CEs you should have now: CE3: - normal rock settings ("can fall", "pushable" and so on) - changes to an emerald after 1 frame CE2: - normal rock settings - changes to CE3 after 1 frame CE1 - normal rock settings - changes to CE1 (itself) after 1 frame - changes to CE2 touching CE1 - changes to CE2 touching CE2 - changes to CE2 touching CE3 Now draw a level this way (remember that "C" stands for "CE1"): ############ 0# # 1# C CC CCC # 2# # ######## 3# # 4#PC C C C E# ############ 0123456789 Right after the beginning of the level you'll have the following: ############ 0# # 1# C ** *** # 2# # ######## 3# # 4#PC C C C E# ############ 0123456789 (all _stuck_ rocks are changed into emeralds) Now push the closest rock in this way: PCC C C E ########## 0123456789 You'll get: P** C C E ########## 0123456789 Try it as many times you want, you'll get 2 emeralds *every* time, so the target is now achieved. The level has been set to need 10 emeralds in order to open the exit door. You have put 10 rocks on it, now your player has to think about it, because the number of free rocks is odd :) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Section III Breeding robots In this section we'll make something like a pet, a "golden eggs' chicken" pet, but we'll call it bug. First of all, select CE1 and set it to use the graphic of the bug - choose the element named "bug (random start direction)", from the "More" group of elements, as it will contain all animations; don't use one of the four "bug (starts moving xxxx)" elements which appear one close to the other on "Boulderdash" group, since they use only one frame and not the animations). In "config 2", set it to "can move: horizontal", "speed: slow". Put it in the middle of the blank custom level of this section. B = CE1 Bug ############ 0# # 1# # 2# B # 3# # 4#P E# ############ 0123456789 It will do nothing more that what you set it to: it will move slowly from left to right and back again. If you put the player on its path, it will go back just like when touching the wall. Now edit CE2 to look like a bug and to move slowly in the vertical directions. Go back to CE1 settings and select the "change" tab. Set it to change into CE2 when touching the player at top/bottom sides. This means that it will change only when you touch the bug at the legs' sides, but will not change if you touch its head or its back. Now go back to CE2 and set it to change into CE1 when touched by player at left/right sides. Test the level. Now you are able to conduct the bug anywhere you want on the level. We have to add the golden eggs! It's time to use the extended change target. Add a changepage to CE1, set "element changes to:" and leave empty the element field beside the option. Put a tick on "use extended change target:". In the big 3x3 element box beside the last mentioned option, the central field represents the field where CE1 will be when the change takes place: put CE2 into this central field. Put four yellow gems on the corners of the 3x3 box. The box should look like this: _____ |* *| | B | |* *| """"" Set it to change when touched by player at left/right sides. Test it: when you touch the head of the bug which moves horizontally, it will change into the vertical moving one, spawning four "golden eggs" in the same time. But you have to add the changepage even for CE2. You could shorten this task by copying the changepage nr. 2 from CE1 (there are two buttons to copy/paste in the bottom of the "change" tab, don't mistake them with the buttons on the right which copy the whole element and not only a changepage - when in doubt, simply look at the status line, it will tell you the action linked to the button under the pointer). Now add a new changepage to CE2, paste the changepage you have copied and change only two things: - replace CE2 with CE1 in the central field of the extended change target box; - change "left/right" to "top/bottom" as sides to be touched. Your golden eggs' bug is ready to help you exit the level. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Section IV Helloworld In this section you will learn to do a simple banner which will show some text on the level. First of all, set CE1 to use the graphics of the mole (choose the one named "mole (random start direction)" for the same reason exposed about bug's graphics). Set it to move right at normal speed, and to "leave behind:[GE1]". You're reading right, it's not CE1 but GE1, standing for Group Element 1. You can find it at the very bottom of the elements' list. Group elements are intended to be used as lists to pick up from (they have other uses too, but we'll see them later). Select GE1 and set "stick this screen to edit content", otherwise remember to use the "control" mode, as explained in the introduction. Change the number of items to 10. Scroll up the list of elements until you see the characters. Pick up letters and fill the word "HELLOWORLD" into the list of elements of GE1. Don't use more than 10 letters because the level is only 10 fields in width. Change "random" to "linear" as method to pick up elements from the list. In this way, when the mole leaves the first GE1 behind, it changes to the first element of the list, which should be the letter "H". The second GE1 left changes to "E" and so on. Put CE1 on the level at position 0,1 and start the level. The word is incomplete! The last GE1 isn't put on the level because the last field is occupied by CE1 (the mole). We could try to solve it by adding a changepage to CE1 and setting it to change into GE1 when touching the element "steel wall". Try it: it will not work. The "steel wall" surrounding the level is not the "steel wall" you can refer to in CE settings. Solve it by adding a "steel wall" in the row below CE1, but at the right side, just like this: M = CE1 Mole ############ 0# # 1#M # 2# ## <- Position (9,2) The "steel wall" element you have to add. 3# # 4#P E# ############ 0123456789 Now the word is complete, and the task is achieved, but we could add a feature to this banner: a switch. Set CE2 to use the graphic of the "mole (starts moving right)", this time we need that single frame in particular because CE2 has to stay still until the "banner" is switched. Set CE2 to change into CE1 when the player touches "steel wall" - this is the switch. Replace CE1 with CE2 on the level and start it. Notice how touching the level's borders will not switch the banner, you'll have to walk right to touch the only effective "steel wall" on the level (the one that you have added). Be careful to not be trapped by the mole! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Section V Simple pullable CE. In this section we'll create a pullable rock. Start as usual by selecting CE1 and setting it with the usual rock features. Draw a level in this way: ############ 0# # 1#CC CC# 2##### ##### 3# # 4#P E# ############ 0123456789 Just like with normal rocks, you will not be able to move any of them, as they are all stuck. We want them to be pullable only when touched by the player. We could pull it from both sides, so we need two additional CEs. It's a good time to use the buttons to copy settings from an element to another. Select CE1, look for the button "copy to other element", click it and then click on CE2. CE1 and CE2 are now identical. Notice that the name is identical too, and that this way to make the copy leaves selected the *origin* element, so now you have to select CE2 and change its name. The name box is editable only when "config 1" tab is active. Now select CE3, click "copy settings from other element" and then click on CE1. This method is better, because you have done the copy leaving active the *destination* element, so you can change its name without having to select it. This is the resume for the 3 CEs: CE1 - normal rock features; - changes to CE2 when touched by player at left side; - changes to CE3 when touched by player at right side. CE2 - normal rock features; - can move left; - changes to CE1 after 8 frames. CE2 - normal rock features; - can move right; - changes to CE1 after 8 frames. Try it, you'll be able to pull the rocks by stepping beside one of them and walking away into 8 frames (the time needed to walk from a field to the next at normal speed). If you stay longer the rock will not be pulled. Modify the level in this way: N = nut with emerald ############ 0# # 1#CC CC# 2##### ##### 3# # 4#PN N N N E# ############ 0123456789 Now you should be able to open all nuts and to exit the level. We could add a feature to these rocks. If you increase to 16 the number of frames for CE2's and CE3's changes, you will be able to pull them either over one or two fields. You must also untick the "can fall" option for CE2 and CE3 (otherwise the moving rock could fall at the first field). Try this level after doing the above changes: ############ 0# C # 1#C #N# C# 2## #C# ## 3#P #N# # 4###N N #E# ############ 0123456789 You should be able to solve this too. Otherwise, the best way to pull the left and right rocks is to walk up beside of them (from [1,2] to [1,0] for the left one, from [8,2] to [8,0] for the right one). ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Section VI Using robots. The custom level of this section is slightly different from the others, is not totally blank in the middle... This is the scheme: B = Bug (real bug, the deadly, standard bug) S = Spaceship (as above, if you don't trust, touch it) ############ 0# E# 1# B S S # 2# B#B # P # 3# B S S # 4#* # ############ 0123456789 If you have ever played some Boulderdash/Emerald Mine levels, you know that you can't take the emerald with the sole player. If you can, please post the tape on the RnD' File Archive, to be honoured with a Golden Rockford for the Solution Tapes. Otherwise, you could tell someone else to go catch the emerald for you. Since we don't want to free the enemies from their "traps", we must think how a robot could go to take the emerald whitout crossing the enemies' paths. Notice that there is a free passage around the enemies. Supposing that we put a CE robot on the top row, beside the exit, it will have to move left until it reaches the wall, then it will have to go down to pick the emerald. So set CE1 to look like the mole when facing left. Now set CE2 to look like a mole (remember to pick-up the animated one when setting the graphics) and set it to move along right side. Set CE1 to change into CE2 when touched by the player. Set CE2 to change into CE1 when touched by the player. In this way you can switch between the static and moving moles by touching them. Now add CE1 mole to the level at the left side of the exit. ############ 0# ME# 1# B S S # 2# B#B # P # 3# B S S # 4#* # ############ 0123456789 When you will touch it, it will move until it reaches the emerald. Since you haven't set any change related to emeralds, the mole will consider it as just a normal obstacle and will move around it. In this way it will obstruct the path of the bugs, and it will free them. Seems obvious that the mole has to pass over the emerald. Set CE2 mole to be able to dig emeralds and to change them into CE3. CE3 will look like an emerald and will move following left side. CE3 will change into an emerald when touched by the player. You can add more emeralds at the bottom of the level, but then you'll have to be very fast taking them before they collide one another and cross the enemies' paths... ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Section VII Cloners I Between the CEs and GEs groups, in the elements' list, there are two black elements, one showing a question mark, called "element triggering change" and another showing the outline of a player, called "player triggering change". Those two elements represent (as the names state) the elements/players which trigger the change of a changepage. Let's use the first to make a universal cloner. Set CE1 to use the graphics of the question mark character element. Set it to change into "element triggering change" when "hit by something". Now draw a level in this way: ? = CE1 cloner (duplicator) G = Emerald (green gem) Y = Yellow gem R = Red gem (Both red and yellow gems can be found in the "More" group of elements) ############ 0#PGGGYYRRRE# 1# SSSSSSSS # 2##????????## 3## ## 4##????????## ############ 0123456789 When you dig the sand, the gems will fall on CE1 elements, and each CE1 will change into the element which it was hit by, so you'll get the following: ############ 0# E# 1# P# 2##GGGYYRRR## 3##GGGYYRRR## 4##GGGYYRRR## ############ 0123456789 Try it, is a nice sparkle to add to levels. If you set CE1 to use the graphics of the element "invisible normal wall", you'll be able to see them in the editor, but the player won't see them while playing. If then you replace the four "steel wall" elements with four "invisible steel wall" elements, the result will be even better: the player will start thinking about the need of 24 gems, and about the presence of only 8 gems. Will see the sand, and maybe will try to walk down around it. Obviously it will stop at the wall, and will then dig the sand multiplicating the gems. Silly but colorful :) It's a shame that we haven't got a "touching something" condition along with the "hit by something" one. I'm even doubting about the fact that this technique was intended to work at all... Anyway, this last restricts the change to happen only when the CE is hit (either by a falling object or by a moving one - so if you replace the gems with rocks, moles, bugs or anything else like this, you'll get a duplicate of each of them) and not when it is touched. See the next section to learn how to create a more specific cloner. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Section VIII Cloners II The "element triggering change" shown in the previous section is mainly used with GEs - mainly used by me, at least :P Select GE1 and set to 2 the number of its elements. Put a "rock" and a "nut with emerald" elements into the empty fields. There's no need to set a graphic for it, as you'll never see it while playing. Anyway, if you want, set it as you like, it's useful when programming CEs. There is no need even to set the choice method, as in this case it has no effect at all, we'll use it to refer to all elements together, as you'll read after . Now set CE1 to look like a blue question mark letter and to change into "element triggering change" when touching GE1. Draw a level in this way: ? = CE1 R = Rock N = Nut with emerald PR ? ? N E ########## 0123456789 CE1 will change into a rock when touching a rock, and will change into a nut when touching a nut. This is just the description of its actual behaviour. The general rule is: "CE1 changes into any element of GE1's list which it touches". This means that you can add as many elements you want to GE1 (well, just up to a total of 16): CE1 will change to them only when touching them. Any other element will not trigger the change. We can already made a nice level from it. Just add a feature to it: set CE1 to be pushable. Suppose you set the number of gems required to 2, and that you put a rock, a nut and a CE1 to the level. The player will have to duplicate the nut and then break them apart with the rock. I'd draw it in this way, for example: ############ 0# R N # 1# ### ### # 2# # 3# ## ? # 4#P E# ############ 0123456789 And this is what you'll see in the second level of this section. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Section IX Cloners III You can easily make a multiplicator from a cloner by using the extended change target. Since you should have completed the previous section, you should have saved your level and its custom elements. Using the arrows in the top-right corner of the screen, beside the number of this level (which should be level 17), go back to level 15 and select CE1, then copy it using the button "copy settings from this element" and finally return to the current level using the above arrows. If you can't see the mentioned copy button, maybe you have to activate the CE settings by clicking on the "?" button. Now select the default CE1 of this level and click on "paste settings to this element" button. You have CE1, but you need also GE1. Go back to the previous level and do the same work you have already done for CE1. Now edit the existing changepage of CE1: use control+click to pick up the "element triggering change" from the single-field element box and put it on the 3x3 extended change target just like this: _____ | | | | |? ?| """"" ? = "element triggering change" (the white on black one, don't mistake it) S = sand Set it to change only when touching GE1 at bottom side (so CE1 has to be touched by a rock or by a nut from the top side, touching all other sides will have no effect). You would now edit the level putting some walls, some rocks, some nuts, and see how does it work, but there's a faster way to make a template to edit and test. Save your level at every change - did not mention it before as it should be a really basical rule - and go back to level 15. Using the "grab brush" button (the scissors), select the whole level in this way: - Press and hold the left mouse button on the top-left field (0,0), then move the pointer to the bottom-right field (9,4), and then release the mouse button. Now that you have taken the image of the level you come back to the current level and you paste the image by putting the mouse over the level map and clicking when the image to be pasted fits correctly. To deactivate the brush select one of the other design tools. Now change it in this way: ############ 0# R # 1# ## ? # 2# N # 3# ## ? # 4#P E# ############ 0123456789 The level has been set to need 3 gems, test it! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Section X Teleporters In this section we'll realize three kinds of teleporters and we'll use them all in the same level. Be ready to reach CE10. The first one uses one only 1 CE, and teleports the player from one of its sides to another. The second uses 2 CEs and teleports the player from one element to the other. The third is a bit more complex: it's a random teleporter which brings the player to one of the 3 destination elements, where each of them will bring the player back to the original location. It uses one CE for the starting location, 2 CEs for each destination field and finally 2 GEs, one for the random pickup of destinations and the other to save some change pages for the origin element, as you'll read some after. Let's start from the easiest one. Set CE1 to use the graphics of the letter "T". Set it to change when pressed by the player at left side. Now set the extended change target of this page by putting CE1 in the middle field, and put "player triggering change" on the field at its right. This teleporter will work even on multiplayer maps, as the "player triggering change" will allow any player to use it. It will not be the same with the other two kinds of teleporter, as they will work only for the player they will be created for. Trying the first teleporter, we'll notice that it will work only in one way: pressing it from left side. If you want to use it from the other side too, you'll have to copy the existing changepage of CE1 and paste it to a new one. Then you'll have to change "left" to "right" as side to be pressed and moving "player triggering change" from one side to the other of CE1 in the extended change target. Now we'll see how to make the make the second kind of teleporter. Set CE2 to show up as an "A" letter and CE3 to show up as a "B" letter. Set CE3 to change when "player presses [CE2]", "player: [1]". Set the extended change target by putting CE3 in the middle field and by putting the "yellow player" element in the middle-right field. Now draw a level in this way: T = CE1 A = CE2 B = CE3 ############ 0#B # 1###### # 2# A# # 3# #### E# 4# T P# # ############ 0123456789 You will be able to pass through "T" (and eventually to come back, if you have set it correctly) and to reach "A". Pressing "A" will warp you to "B", but pressing "B" will not bring you back to "A". Let's fix it. Copy CE3's changepage and paste it into CE2. Replace CE2 with CE3 in "player presses" option. In the extended change target, replace CE3 with CE2 and move "yellow player" from right to left (this is because CE2's free side is the left one). Now it should all work fine. You can reach the exit and come back to the start position. Now let's see the third kind. It is not difficult, neither it is tricky, it is just a bit more complex, because it uses some CEs: take it step by step and you'll get it thorough. We need a fake teleporter (CE4) which will react to the pressure of the player by changing into one of the 3 real teleporters (CE5, CE6 and CE7) which, on its turn, will switch the change of the relative destination teleporter (CE8, CE9 or CE10). Then we need the player to be teleported back to the fake random teleporter when any of the three destination elements is pressed. You should be able to create them only looking at the above description, but since there are some other little things needed, set the elements as the following lines show: CE4 (Fake Teleporter) - Use graphics of letter "?"; - Changes into GE1 when pressed by yellow player (in other words by player nr. 1); - Changes into itself (middle field) and the yellow player (middle-left field) - using the extended change target - when the yellow player presses GE2. CE5 (Start location teleporter) - Use graphics of digit "1"; - Changes into CE4 after 30 frames; CE6 (Start location teleporter) - Use graphics of digit "2"; - Changes into CE4 after 30 frames; CE7 (Start location teleporter) - Use graphics of digit "3"; - Changes into CE4 after 30 frames; CE8 (Destination teleporter) - Use graphics of digit "1"; - Changes into itself and the yellow player when "change by page of: [CE5]". CE9 (Destination teleporter) - Use graphics of digit "2"; - Changes into itself and the yellow player when CE6 changes by page. CE10 (Destination teleporter) - Use graphics of digit "3"; - Changes into itself and the yellow player when C7 changes by page. Notice that the extended change targets of the three destinations should be set in the same way of the fake teleporter, so in this way: _____ | | |YT | | | """"" Where "Y" stands for "yellow player" and "T" stands for "the CE that you are setting" - (also called "itself"). Now the Group Elements: GE1: - Contains CE5, CE6, CE7; - Choice method: random. GE2: - Contains CE8, CE9, CE10. The choice method of GE2 has no effect, since we are not picking them up to put them on the level (as we do for GE1 in the first change page of CE4), but we are using it to refer to any destination teleporter (in the *second* change page of CE4, in order to bring back the player). The level I've drawn for these teleporters is as follows: T = CE1 A = CE2 B = CE3 ? = CE4 1 = CE8 2 = CE9 3 = CE10 D = Diamond ############ 0#B # D# 1###### ?# 1# 2# A####### 3# #### D# E# 4# T P# 2# 3# ############ 0123456789 The number of gems required for the level has been set to 6, as you can see from the level settings page, I think you have already tried to click the "info" button. By the way, switching between the 3 editor modes (levelmap, element settings and level settings) could be hassling at times, if you don't know that you can activate the level map by clicking two times on the "?" button. Try the level as you have customized it. Then try my version. You should notice that the third teleporter is used very rarely... 15 times over 16 you will be teleported to the first or to the second. To see how it is done, simply look at GE1's settings using the level editor. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Section XI Objects Teleporter Doing an object teleporter isn't harder than doing a player teleporter, only that it needs some CEs more. Let's start doing an universal, hit-on teleporter. If you remember the settings for doing a universal cloner, you'll have no problem with this. Set CE1 to change when "hit by something" from "top" side. In the ECT (extended change target), put CE1 into the middle field and "element triggering change" in the bottom-central field. Now draw a level in this way: ? = CE1 R = Rock N = Nut ############ 0# R N # 1# # # # 2# # 3# ? # 4#P E# ############ 0123456789 Try it. You'll see that it will not teleport the objects, it will clone them. While a player teleporter needs only the destination field to be set (since the old "player" element is removed automatically when a new one is put on the level), an object teleporter has to destroy the element at the start point. So set CE2 to use "invisible normal wall" graphics and to change into an empty field after 0 frames, this is the "blanker" which will replace the element to be teleported. Put CE2 in the top-central field of CE1's ECT and set its sub-option to "replace when: destructible" In this way, when CE1 is hit from above, the hitting element is replaced with CE2 (which changes into nothing), while a new element is created below the teleporter. Try it now, it should work correctly. But a teleporter like this is pretty useless (even if it's universal) because needs to be hit and teleports the objects only from a side to another. Let's make a teleporter like the second we have made for the player, so that the origin and the destination are made with two different CEs. Select CE1 and reset it to the default state by copying the settings from a blank CE, for example CE3. After pasting the settings, the name is changed too, but you have already done such things and you will surely rename it. Now reset CE2 too. I'll suggest a "one-way, single-side touch, two objects teleporter", you'll have the pleasure of creating all the kinds you'll want, even if you should be already able to combine the settings you know about the player teleporter n°2 and the settings you have used right know for the universal object teleporter... Anyway, here they are: CE1: - Looks like the blue sphere with the arrow pointing left (you can find it in the "More" group); - Pushable; - Changepage nr. 1: Changes when touching "Rock" element at right side, with this ECT replacing when destructible: _____ | | 1 = CE1 Teleporter |B1 | B = CE3 Blanker | | """"" - Changepage nr. 2: Changes when touching "Nut" element at right side, with this ECT replacing when destructible: _____ | | |B1 | | | """"" CE2: - Looks like the blue sphere with the arrow pointing down; - Pushable; - Changepage nr. 1: Changes when change by page of CE1, at page nr. 1, with this ECT: _____ | | 2 = CE2 Teleporter | 2 | R = Rock | R | """"" - Changepage nr. 2: Changes when change by page of CE1, at page nr. 2, with this ECT: _____ | | | 2 | N = Nut | N | """"" CE3 (Blanker): - Uses the graphics of element "invisible normal wall". - Changes to nothing immediately (that is after zero frames). This is the final level of this section, to be used with the above CEs. 1 = CE1 2 = CE2 A = Acid ############ 0# 2 # R R # 1# # E # # 2# #PN # 3# N # N # 4#A#AA# R 1 # ############ 0123456789 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++