Tutorial: Mortar Madness Last edited 13 years ago2005-08-04 04:00:00 UTC by 38_98 38_98

This article was converted from a previous version of TWHL and may need to be reviewed

  1. The formatting may be incorrect due to differences in the WikiCode processing engine, it needs to be revised and reformatted
  2. Some information may be out of date
  3. After the article is re-formatted and updated, remove this notice and the Review Required category.
  4. Some older tutorials are no longer useful, or they duplicate information from other tutorials and entity guides. In this case, delete the page after merging any relevant information into other pages. Contact an admin to delete a page.

Download attachment

Mortar fields. What are they?

Do you remember back in 'Surface Tension'? Right at the end, where you had to blow up the doors to the Lambda Complex and the walls surrounding it, and then finally blowing up the Communications Tower to make a path across? Well that was done using a func_mortar_field which was set to be controlled by a table (which I will later explain how to do). Also, when you reached the door, a seemingly random bombardment rained down upon you? That too was the func_mortar_field. In this tutorial I'll show you how to make the 3 different kinds of func_mortar_field, random, activator and table. Keep in mind that the func_mortar_field is a brush-based entity. Okay, let's start off with...

Random bombardments

Making a func_mortar_field perform random bombardments is easy. Just follow the directions below, which need to be set for the entity.

Name: You need this not only to activate, but to retrigger.
Spread radius: The accuracy of your bombardments basically. If you put in 100, all bombs dropped will land in a 100 unit radius of the original target
Repeat count: This defines how many bombs are dropped per bombardment. 4 usually works for this, but you can experiment
Targeting: You won't need to edit this, seeing as we want a spontaneous and random effect for the bombardment.

Once you've got that filled in, you'll need to work on triggering it. Once a func_mortar_field on random is triggered, it only attacks once and then goes into an off-state. So, you'll need to build up a small network of triggering and re-triggering to make the continous effect you may be looking for. In the example map, I used a trigger_auto and 2 multimanagers, which work like this:

trigger_auto triggers first multimanager, called m1
m1 triggers bomb(func_mortar_field) after 5 seconds, at the same time triggers m2
m2 triggers bomb after 5 seconds, triggers m1 at the same time, and so on.

As you can see, the func_mortar_field is triggered every 5 seconds, along with 4 as a repeat count. It makes for a very effective bombardment.

Activator bombardments

Simply make the trigger target the mortar field. Then, moments later: voila! Dead people. The only thing you'll need to edit from the random one is how you trigger it and of course, the settings in the targeting box, which you'll need to set to activator.

Table bombardments

Ahh, table bombardments. This is more difficult to set up then the others, simply because of the multitude of entities involved, not forgetting how accurate you would need to make your table in order to have your attacks accurate.

The entities I will use in the creation of the table to control the func_mortar_field are:
  1. func_button
  2. momentary_rot_button
  3. momentary_door
Your func_mortar_field should be set up the same as usual, execpt for the 3 below:

Targeting: table
X Controller: The name of the momentary_rot_button to control the x axis. In the example, it's called x
Y Controller: The name of the momentary_rot_button to control the y axis In the example, it's called y

Build up your table first. Make it as accurate to your map as possible (so your bombs land where you want them to), then begin with the momentary_rot_button's. Make 2 of them, with origins and everything. The folowing properties are for the x and/or y button:

Name: Make sure it matches with what you put in the x controller/y controller for the func_mortar_field, or else it wont work.
Target: Your momentary_doors. I'll tell you about those in conjunction with momentary_rot_button later.
Auto-Return Speed: 0, for obvious reasons.

Everything else you can leave. Put these values in for both of your momentary_rot_button and your done with that for now. The next part is the momentary_door, which acts as your indicators to what part of your map you are targeting. You'll need 2: one for each axis. Input the following values into the properties:

Name: The name is the target of your momentary_rot_buttons. In the example map, it's "xdoor/ydoor")
Speed: It's good to keep this low. The lower it is, the more accurate the players attacks will be.
Lip: Important! Your lip is how far your momentary_door goes before it stops. Basically, it's how far your momentary_door can move (96 units in example map).

Use this for both your doors. Also, use the little compass in the properties menu to get your door moving the right way. You'll need them working properly before adding the button test with your momentary_rot_buttons. Now, let's make a button. Make the button out of anything - any texture will do, but I suggest using a button texture, for obvious reasons. Placing it somewhere in between your 2 momentary_rot_buttons is a good idea. Then, in the properties just make it target the func_mortar_field. Test it and see if it works. When it does, see how accurate your bombings are compared to the table. When your happy with it, you're done!

Final notes

The best place to put a table is in a rather large deathmatch map. It would be great fun to blast players and would also tempt players towards it, which could open up possibilities for traps and the like. I'd also like to add that the zip file has 2 maps: Mortar 1 has the random and activator, and Mortar 2 has the table. Happy mapping!


You must log in to post a comment. You can login or register a new account.