Snarkpit Articles


Introduction

I should warn you now that this tutorial is not for beginners. I will assume a strong basic understanding of Half-Life map editing.

Some people may be curious to know how the special effects work in my map Gmdm2. This series of tutorials will explain how to recreate these effects within the framework of the Gmdm2 mod. It won?t explain how to recreate them in normal Half-Life because?.well, that?s impossible. You can create similar effects without my mod., but they won?t be as good. For example, you could create a rolling boulder from world brushes rather than a model; you would not be able to create the dust trail and ripple effects.

I will write this tutorial as though you are working with me on the example maps. You don?t have to do this of course! If you do want to follow the tutorials and compile the example maps as you go, you will need to download my mod. first:I should point out that very little of the mod. is my own work. It is based on Spirit of Half-Life, with additional doors code by James Bielby. I used the Spirit FGD file for making my map, since I was too lazy to augment it with my changes. I will assume that you are also working with the Spirit FGD, which you can download here:You can download the example maps for each tutorial separately, or you can get them all at once here:

Part one: doors

Gmdm2 features shootable doors that change the routes between areas. There are a number of important properties to note:

  • Doors have several moving parts, which do not get out of synchronisation
  • Doors are triggered by shooting
  • You can choose which parts of a door can be shot
  • Doors have a delay before they may be triggered again
  • Doors can have a different sequence for opening than for closing
There?s our ?mission statement? for this tutorial. Now I will take you through setting up an example door. Download the example maps for part 1 if you want to follow the tutorial in Hammer. The file called ?map1? is what you will start with; if you follow the tutorial correctly, you should end up with something like ?map2?.

Load the example map ?map1?. I have made all the geometry and lighting for you. I have also built the example sets of doors with which we shall work, but I haven?t set any of their special properties yet. All I have done is set them to move in the right direction by the right amount, and given them names. Compile the example map if you like, to see what we are starting with. At the moment the doors will not open.

Before we make a control system for the doors, we need to change some of their properties. Use the entity report to select all 3 doors, and give them the following properties:
  • Delay before close -1
  • Damage inflicted when blocked 1000
  • Health 1
  • Move sound Track door (7)
  • Stop sound Chunk (4)
Then make sure that all and only the following flags are ticked:
  • Don?t link
  • Toggle
Find the door called ?door2?. We will begin by making this door work. Create a trigger_relay (henceforth a ?relay?). Set its properties as follows:
  • Name door2_relay
  • Target door2_mm
Now turn off SmartEdit and add:
  • restart 10
Create a multi_manager (henceforth a mm) with:
  • Name door2_mm
Turn off SmartEdit and add:
  • door2 0
Finally, select "door2" and add:
  • Master door2_relay
This is how it works: when the door is shot, it sends a signal to the relay (note that this is not a normal master relationship at all). The relay then triggers the mm, which fires all the events that we want to happen when the door opens (in this case, just moving the door). The restart value of the relay means that, for 10 seconds, it will ignore signals ? that is, you have to wait 10 seconds to move the door again.

This method may seem overly complicated. Trust that I have good reasons for using it! You will find it necessary when setting up more complicated situations. Compile the map and test what happens. You must shoot the door to open it.

Now we will make a more complex system. Create a relay with:
  • Name door1_relay
  • Target door1_mm1
Turn off SmartEdit and add:
  • target2 door1_mm2
  • restart 10
Create an mm with:
  • Name door1_mm1
Turn off SmartEdit and add:
  • door1_1 0
  • door1_2 1.5
Create another mm with:
  • Name door1_mm2
Turn off SmartEdit and add:
  • door1_1 1.5
  • door1_2 0
Now select ?door1_1? only and add:
  • Master door1_relay
The target2 key tells the relay what to fire the second time it is triggered. This is useful for making sequences that have a different closing order to the order in which the doors open.

Compile the map; you will find that only one of the doors can be used to trigger the sequence; in order to close them, you will have to go around to the correct side to shoot this door. Only the doors that have the master key set will trigger the sequence. You could, of course, make these parts stay stationary if you wished.

This completes the first tutorial. In the next tutorial, I will show you how to make a basic train that interacts correctly with the doors. In the final tutorial, I will show you how to transform this train into a rolling boulder.


Continue to part 2 >>>


Post ReplyView Topic
Discussion
0 starsPosted by darkdruid on Mon Oct 27th 2003 at 3:25am

I see that the snarkpit server is running this map, why doesn't anybody join?? Its very fun!
[author]
Posted by Gollum on Sat Oct 25th 2003 at 11:38am

I kinda like the sound of that name =D
[author]
Posted by Gollum on Sat Oct 25th 2003 at 11:29am

Heh - it may be getting even longer in the future: with Gmdm2 v1.1 I will may be able to make my boulder a bit more lag/edict-efficient; custom death sprites are another feature I now have.
0 starsPosted by Cash Car Star on Sat Oct 25th 2003 at 8:22am

There is some definite, good smart stuff in here that would probably be overlooked when trying to make a Gollum Rolling Boulder mod map. I really like calling the mod that, it gives all the props to Gollum, as they all should be given.
0 starsPosted by Cash Car Star on Sat Oct 25th 2003 at 8:21am

Nothing like a nice short tutorial to close the whole thing off!
Post ReplyView Topic